gezippte Dateien inkl. Ordnerstruktur verschieben

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 27 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    gezippte Dateien inkl. Ordnerstruktur verschieben

    Ich bräuchte mal eine kleine Hilfe / Denkanstoß .... :saint:

    Also das zippen etc klappt nun so wie ich mir das vorstellte.
    Jetzt Habe ich die Überlegung, die gezippen Dateien auf die Backup Festplatte zu verschieben.

    Wie sollte ich diese Funktion angehen :?: Bitte um Denkanstöße ;)
    Meine Idee die Komplette Ordnerstrucktur irgendwie beibehalten...

    --------------
    Das mit dem Debug habe ich mal gemacht, seltsam was da alles stand... ;)

    ausgelagert aus Async und Await ~VaporiZed
    Asperger Autistin. Brauche immer etwas um gewisse Sachen zu verstehen. :huh:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()

    Die komplette Ordnerstruktur zu behalten, wird etwas schwierig, abhängig davon, wie verzweigt alles ist. Schließlich sind da doch bestimmt auch Dateien in den Verzeichnissen, die nicht mit auf die Platte sollen. Aber sonst: Alle gezippten Dateien zusammensammeln, bevorzugt als IO.FileInfo-Liste, dann kommst Du an alle benötigten Verzeichnisinfos. Die musst Du dann nur noch auf der Platte nachbauen. Die Infos sind ja da.
    Aber: Ist das noch das Async/Await-Problem? Sonst muss das vom Ursprungsthema abgespalten werden.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    VaporiZed schrieb:

    Aber: Ist das noch das Async/Await-Problem?


    Hallo
    Nein ich glaube das konnte ich beheben.. Habe nun mehrer Durchläufe ohne Fehler hinbekommen.

    Zitierfehler beseitigt ~VaporiZed
    Asperger Autistin. Brauche immer etwas um gewisse Sachen zu verstehen. :huh:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()

    Amelie schrieb:

    die gezippen Dateien auf die Backup Festplatte zu verschieben.
    Warum erzeugst Du das Zip nicht gleich im Zielverzeichnis?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    (Fast-)Vollzitat des direkten Vorposts an dieser Stelle entfernt ~VaporiZed

    Diese Idee hatte ich gestern auch schon aber:
    Da müsste ich ermal sehen wie ich das ohne großen Aufwand bewerkstelligen kann und was viel wichtiger ist, ich kenne ja im Vorfeld nicht die Ordnungsstruktur oder spielt das keine Rolle?
    Vielleicht kannst mir da weiterhelfen, in VB nicht in C??? :D
    Asperger Autistin. Brauche immer etwas um gewisse Sachen zu verstehen. :huh:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()

    Amelie schrieb:

    oder spielt das keine Rolle?
    So isses.
    Du hast doch einen Pfad für das ZIP, da musst Du doch nur C:\Temp\ durch D:\Amelie\ ersetzen.
    Mit welchem Code zippst Du denn?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @Amelie: Hmm - warum setzst du nicht einfach um, was du dir vorgenommen hast?
    Nämlich eine ZipDatei auf ein anderes Laufwerk verschieben.
    Das ist das einfachste, und ich denke, das schaffst du allein.
    Die Denkanstösse (du wolltest doch welche?), die du dazu brauchst, stehen in post#4.
    Hingegen deine Zip-Funktion umschreiben oder nun eine neue entwickeln schaffst du nicht allein.

    Ich weiss - du ignorierst post#4 nicht - du antwortest nur nicht darauf. Das lässt mich vermuten, dass du iwas an post#4 nicht verstehst. Ignorieren (nenn es wie du willst) ist aber nicht der Weg, zu einem Verständnis zu kommen, aber vlt. interessierts dich ja auch nicht (was eigentlich die Kernaussage von Ignorieren Nicht-Antworten ist).
    @ErfinderDesRades
    Ich ignoriere nichts, und ein bissel english kann ich auch.
    Ich versuche mich gerade in die OOP Denkweise oder wie man das nennen will einzuarbeiten.
    Ich habe gemerkt, das " meine Logic " nicht immer mit dem übereinstimmt was man programmieren kann.

    Deswegen habe ich um diese " Denkanstöße " gebeten.. wie ich das nun mit dem copy / move am besten machen könnte.

    @RodFromGermany

    Dann müsste ich aber hier in meinem Code noch eine weitere Abfrage einbauen wohin denn dann kopiert oder verschoben werden soll
    und die Unterordner und und und ....???
    Beispiel wie es bei mir Teilweise ausschaut:
    D:\
    ..\Dokumente\Arbeiten 2019\Jan\ ....
    Dann in
    Jan\Susi\xxx.doc ( oder xx.txt usw.)
    Jan\Rezepte\xxx.doc ( oder xx.txt usw.)

    2019\Feb\...
    Jan\Susi\xxx.doc ( oder xx.txt usw.)



    Mein code zum Zippen:

    VB.NET-Quellcode

    1. Private Sub zippen()
    2. Dim tempdir As String = "\ziptemp"
    3. Dim Root As New IO.DirectoryInfo(DirectCast(DriveInfoBindingSource.Current, DriveInfo).DriveLetter)
    4. PutFilesIntoListBoxFrom(New IO.DirectoryInfo(laufwerk.ToString), datatype)
    5. For Each Datei In TargetFiles
    6. Try
    7. If abbruch Then Exit For
    8. Dim Pfad2 As String = Datei.DirectoryName & tempdir
    9. If IO.File.Exists(Datei.DirectoryName & "\" & Datei.Name & ".zip") Then
    10. Me.Invoke(Sub() Result("Zip bereits vorhanden."))
    11. Continue For
    12. End If
    13. If IO.Directory.Exists(Datei.DirectoryName & tempdir) = False Then
    14. IO.Directory.CreateDirectory(Datei.DirectoryName & tempdir)
    15. End If
    16. System.IO.File.Copy(Datei.FullName, Datei.DirectoryName & tempdir & "\" & Datei.Name)
    17. If rb_comp1.Checked = True Then
    18. ZipFile.CreateFromDirectory(Pfad2, Datei.FullName & ".zip", CompressionLevel.Fastest, False)
    19. Else
    20. ZipFile.CreateFromDirectory(Pfad2, Datei.FullName & ".zip", CompressionLevel.Optimal, False)
    21. End If
    22. IO.Directory.Delete(Datei.DirectoryName & tempdir, True)
    23. If ckb_del.Checked Then
    24. IO.File.Delete(Datei.FullName)
    25. End If
    26. Me.Invoke(Sub() Result(Datei.Name & ".zip"))
    27. Catch UAEx As UnauthorizedAccessException
    28. MessageBox.Show(UAEx.ToString)
    29. End Try
    30. Next
    31. End Sub

    Hier nochmals Dank an @VaporiZed für seine Hilfe ;)
    Asperger Autistin. Brauche immer etwas um gewisse Sachen zu verstehen. :huh:
    @Amelie Erstell Dir mal ein zwei Hilfsvariablen:
    FromFolder und ToFolder und hänge da nur noch den Dateinamen dran. Damit wird der Code sehr viel lesbarer.
    Wie instanziierst Du denn ZipFile?
    Da müsste doch ein Pfad drinne stecken, und den kannst Du doch variabel machen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Amelie schrieb:

    @ErfinderDesRades
    Ich ignoriere nichts
    neinnein! das sagt ja keiner!
    Du setzt dich blos nicht mit post#4 auseinander, also probierst nicht - denkst nicht mal daran - , umzusetzen, was da steht.

    Weil sonst hättest du dein Problem längst selbst gelöst.
    Oder wärest auf ein Unter-Problem gestossen, und hättest nachgefragt.



    Amelie schrieb:

    Deswegen habe ich um diese " Denkanstöße " gebeten.. wie ich das nun mit dem copy / move am besten machen könnte.
    Was meinst du mit "diese"?
    Egal. in post#4 steht, was zu tun ist, um zu lernen, eine Datei (auch eine zip-Datei) zu verschieben.

    Aber lass dir gerne deine Zip-Methode umbauen, dann hast du eine neue Zip-Methode, und kannst immer noch keine Datei verschieben.
    Und weisst auch immer noch nicht, wie man sowas überhaupt rausfindet.

    Vmtl. schmeisst dir auch noch jemand die Codezeile zum Verschieben hin, dann kannst du auch eine datei verschieben.
    Nur gelernt, wie man sowas rausfindet, haste dann immer noch nicht.

    ErfinderDesRades schrieb:

    Du setzt dich blos nicht mit post#4 auseinander, also probierst nicht - denkst nicht mal daran - , umzusetzen, was da steht.


    Sorry, wie kannst du behaupten das ich nicht einmal daran denke? ;(

    Du hast das vielleicht alles über Nacht gelernt, mir fällt das nicht so leicht und mehr als lesen üben testen kann ich nicht.

    Ich habe NICHT um codezeilen gebeten sonder um eine Vorgehndsweise wie ich so etwas realisieren könnte.
    Ich schrieb ja deutlich, das meine Logik nicht unbedingt der der OOP gleich ist!
    Asperger Autistin. Brauche immer etwas um gewisse Sachen zu verstehen. :huh:

    Amelie schrieb:

    ErfinderDesRades schrieb:

    Du setzt dich blos nicht mit post#4 auseinander, also probierst nicht - denkst nicht mal daran - , umzusetzen, was da steht.


    Sorry, wie kannst du behaupten das ich nicht einmal daran denke? ;(
    Das schrieb ich dir doch bereits, wie ich darauf komme - im selben Post:

    ErfinderDesRades schrieb:

    Weil sonst hättest du dein Problem längst selbst gelöst.
    Oder wärest auf ein Unter-Problem gestossen, und hättest nachgefragt.

    RodFromGermany schrieb:

    Wie instanziierst Du denn ZipFile?


    Ich habe den Verzeichnissbaum meiner Festpaltten und einen weiteren Verzeichnissbaum der DateiEndungen. ( txt / doc )
    Da klick ich auf die Einträge welche ich benötige und die entsprechenden Variablen werden dem zippen übergeben....

    --------
    --------
    @ErfinderDesRades
    Schön das Du den ganzen Tag neben mir sitzt und zusiehst was ich lese, übe usw ....
    Hast du vielleicht mal daran gedacht, das man das gelesene erstmal verinnerlichen muss und dann mit dem üben etc beginnt bevor man Fragen stell?
    Bei einigen Menschen geht das nun mal nicht so schnell wie du es dir evtl wünscht!!
    Vielleicht bin ich hier in diesem Forum als Anfängerin falsch. Bloß nicht Fragen wenn du nichts kannst.
    Asperger Autistin. Brauche immer etwas um gewisse Sachen zu verstehen. :huh:

    Amelie schrieb:

    @ErfinderDesRades
    Schön das Du den ganzen Tag neben mir sitzt und zusiehst was ich lese, übe usw ....
    Das tue ich doch garnet.

    Amelie schrieb:

    Hast du vielleicht mal daran gedacht, das man das gelesene erstmal verinnerlichen muss und dann mit dem üben etc beginnt bevor man Fragen stell?
    Das stimmt doch garnet.
    Man kann auch ohne "gelesenes verinnerlicht" zu haben Fragen stellen.
    Wenn du dich da unter Druck gesetzt fühlst - bist du selber, der dich da unter Druck setzt.

    Amelie schrieb:

    Vielleicht bin ich hier in diesem Forum als Anfängerin falsch.
    Ich finde Anfänger in diesem Forum richtig.

    Amelie schrieb:

    Bloß nicht Fragen wenn du nichts kannst.
    Was für ein Quatsch. Je weniger man weiss, desto mehr muss man doch fragen.
    @Amelie Missverständnis.
    Ich möchte so was wissen:

    VB.NET-Quellcode

    1. Dim ZipFile = New ZIP_CLASS()
    2. ZipFile.TARGET_PATH = "C:\Temp\"
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @ErfinderDesRades:
    Und noch einmal ... .... ....

    Ich habe NICHT nach Codezeilen oder um Code befehle gefragt sondern um eine Vorgehensweise.
    Aber es ist nun egal. Danke.

    Zitierfehler korrigiert ~VaporiZed
    Asperger Autistin. Brauche immer etwas um gewisse Sachen zu verstehen. :huh:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()

    @RodFromGermany:

    VB.NET-Quellcode

    1. Dim tempdir As String = "\ziptemp"
    2. Dim Root As New IO.DirectoryInfo(DirectCast(DriveInfoBindingSource.Current, DriveInfo).DriveLetter)
    3. PutFilesIntoListBoxFrom(New IO.DirectoryInfo(laufwerk.ToString), datatype)
    4. ' in laufwerk und datatype stecken die Variablen die ich meinte

    Das * "\ziptemp" *wird NUR temporär auf der Festplatte und in dem Verzeichnis erstellt wo gerade gezippt wird. Nach dem zippen der Dateien wird das gleich wieder gelöscht.
    Hoffe das ist so verständlich.??

    Zitierfehler korrigiert ~VaporiZed
    Asperger Autistin. Brauche immer etwas um gewisse Sachen zu verstehen. :huh:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()

    @Amelie Hör endlich auf, komplette Posts zu zitieren.
    Wenn Du ein Forenmitglied ansprechen willst, tu das mit der Anredefunktion:
    @NAME_DES_MITGLIEDS: @Amelie
    ====
    Nein, das ist so nicht verständlich.

    VB.NET-Quellcode

    1. ZipFile.CreateFromDirectory(Pfad2, Datei.FullName & ".zip", CompressionLevel.Optimal, False)
    Statt Datei.FullName & ".zip" schreibst Du

    VB.NET-Quellcode

    1. ZipFile.CreateFromDirectory(Pfad2, "D:\Amelie\Archiv" & ".zip", CompressionLevel.Optimal, False)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Amelie schrieb:

    Ich habe NICHT nach Codezeilen oder um Code befehle gefragt sondern um eine Vorgehensweise.
    Ja, ich weiss - das weiss ich schon die ganze Zeit.
    Ich hab dir doch auch gar keinen Code gegeben, also wieso erzählst du mir das?

    Ich hab dir doch nur genau gegeben, worum du gebeten: Hinweise zur Vorgehensweise.
    Dummerweise bist du nicht drauf eingegangen und beschäftigst dich nun mit etwas anderem, schwierigerem als was du ursprünglich gesagt hattest.

    Zitierfehler korrigiert ~VaporiZed

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „VaporiZed“ ()