Dateien kopieren..

  • VB.NET
  • .NET (FX) 4.0

Es gibt 30 Antworten in diesem Thema. Der letzte Beitrag () ist von Marcus Gräfe.

    So im Spoiler siehst du mal ein Beispiel, welches aufgrund deiner Daten verschiedenste Verzeichnisse durchforstet und später entsprechend einer IF THEN Abfrage dann deine Dateien verschiebt.
    Dabei hättest du alles was du benötigst - aber denk dran - Copy&Paste ist nicht das was du willst aber es hilft dir zu verstehen wie es funktionieren könnte.
    Und bevor mit gleich @RodFromGermany und @VB1963 aufs Dach steigen - ist nur ein schnelles Beispiel :D

    Spoiler anzeigen

    VB.NET-Quellcode

    1. 'Einlesen deiner Textdatei aus der TextBox mit den gesuchten Dateien
    2. Dim DeineDateien() As String = File.ReadAllLines("C:\DeineTextdatei.txt")
    3. 'festlegen des neuen Zielverzeichnisses
    4. Dim späteresVerzeichnis As String = "C:\TestTemp"
    5. 'dein mstrSourcePath in dem später gesucht werden soll
    6. Dim originalVerzeichnis As String = "C:\Testverzeichnis"
    7. 'einlesen aller Dateien in deinem mstrSourcePath sowie deren Unterverzeichnissen
    8. Dim enthalteneDateienUndVerzeichnisname As String() = Directory.GetFiles(originalVerzeichnis, "*", SearchOption.AllDirectories)
    9. 'einzelnes durchgehen der Dateien
    10. For Each aktuelleDatei In DeineDateien
    11. For Each vorhandeneDatei In enthalteneDateienUndVerzeichnisname
    12. 'den Dateinamen trennen vom Verzeichnis für den späteren Vergleich
    13. Dim nurDateiName() As String = vorhandeneDatei.Split("\")
    14. 'Prüfen ob die Namen stimmen
    15. If aktuelleDatei = nurDateiName(nurDateiName.Length - 1) Then
    16. 'kopieren
    17. File.Copy(vorhandeneDatei, Path.Combine(späteresVerzeichnis, aktuelleDatei), True)
    18. End If
    19. Next
    20. Next


    Über diese Methode könntest du gleich noch die entsprechenden Ursprungsverzeichnisse abfragen und bei bedarf den kompletten Stamm händisch neu erstellen, wenn gewünscht, da du in der Variable nurDateiName alles zerlegst in seine Einzelteile
    @RodFromGermany @VB1963 @ThomasG82

    Ich lese jetzt sofort über die Textbox ein. Listbox1 entfällt somit. Listbox2 später auch.
    So werden nun die Dateien aus der Textbox von Quelle zum Ziel kopiert.

    VB.NET-Quellcode

    1. End Sub


    @ThomasG82
    Ich werde dein Beispiel später mal untersuche was das genauch macht. Danke.
    Asperger Autistin. Brauche immer etwas um gewisse Sachen zu verstehen. :huh:

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

    Im Prinzip brauchst du meins damit nicht mehr, du hast es ja selber hinbekommen. ALSO Sehr gut, top Arbeit.
    Deine zweite TextBox ist ja damit nur der aktuelle Vorgang, der zeigt welche Datei kopiert wurde.
    Könntest es also als Anzeige nutzen. In der ersten entfernen, in der zweiten anzeigen.
    Mein Beispiel erklärt nur sehr deutlich die einzelnen Schritte des Vorgangs, ist aber um weiten länger und komplizierter.
    @ThomasG82 Ich muss mich ja sehr wundern, dass Du den Code von Amelie mit ALSO Sehr gut, top Arbeit bewertest.
    Der Code von Amelie ist grottenschlecht und Du hast wahrscheinlich keine Ahnung, was da abläuft bzw. was da nicht abläuft. X(
    @Amelie Was soll der Code?
    Wenn ich mir die Beschreibung zu My.Computer.FileSystem.GetFiles() ansehe, hat der 3. Parameter die Bedeutung wildcards, also "*.*", "*.docx" usw.
    Deine Verwendung von source widerspricht sich zwischen Zeile 5 (.GetFiles()) und Zeile 6 (Dim sourceFile = IO.Path.GetFileName(source)).
    Versuch 1: Inhalt von tb_sourcepath = { "C:\Temp\Test.pdf", "C:\Temp\Finde_Pi.png" } (Daten für Copy())
    => Exception:

    Versuch 2: Inhalt von tb_sourcepath = { "*.pdf", "*.png" } (Daten für GetFiles())
    => Exception:

    Offensichtlich hast Du die Bedeutung des Begriffs Debuggen noch nicht verinnerlicht.
    Ich würde Dir dringend anraten, Dich mit dem Debuggen dieser Routine zu befassen.
    Debuggen, Fehler finden und beseitigen
    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!
    @RodFromGermanynull@ThomasG82

    Ich habe jetzt noch einige Änderungen vorgenommen. Es macht nun genau das was ich mir Vorgestellt habe.
    Das kann ein Profi sicher noch viel besser machen ;)

    VB.NET-Quellcode

    1. End Sub
    Asperger Autistin. Brauche immer etwas um gewisse Sachen zu verstehen. :huh:

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Amelie“ ()

    Amelie schrieb:

    VB.NET-Quellcode

    1. extention()
    macht was?
    Meinst Du Extension?
    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!
    @RodFromGermany

    Achso vergessen..

    ​extention()


    Das sind 2 RadioButtons wo ich einstelle ob "doc" oder "txt"
    Asperger Autistin. Brauche immer etwas um gewisse Sachen zu verstehen. :huh:

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

    OTon und nicht passend für das Thema. Aber @RodFromGermany das was ich gesagt habe bezog sich darauf, dass sie ihr Problem selber gelöst hat. Ohne zu kopieren und bevor ich etwas geschrieben habe. Ihren Code habe ich gar nicht mehr getestet, denn sie sagte er macht das was er soll. Es ging also nur um die eigenständige Problemlösung, nicht um Inhalt oder gar Form des Codes. Da lässt sich immer streiten und jeder Programmierer hinterlässt seine eigenen Spuren und Fußnoten.
    Somit den Anschiss an mich etwas runterfahren, bitte
    [OT]

    ThomasG82 schrieb:

    OTon und nicht passend für das Thema.
    Oh weiser ThomasG82, vergib mir die Impertinenz, dass ich mit herber Kritik um mich warf, ohne zu wissen, das Du gelobt hast, was trotzdem nicht funktionierte.
    [/OT]
    Wie erwartest Du, dass hier im Forum Kritik an Thread-Erstellern und Postern geübt werden soll, kann, darf, wenn da offensichtlich Müll als funktionierende Lösung angeboten wird?
    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!
    Application Exit ()

    Trotzdem Danke für die Hilfe, auch wenn ich nur Müll produziere, welcher für mich das macht was ich brauche.
    Ich "programmiere" diese Tools alle NUR für mich. Ich habe kein Interesse ein professioneller Programmierer zu werden oder gar etwas zu verkaufen.

    Man kann immer alles besser und vor allem anders machen und einige lernen schnall andere weniger schnell.
    Asperger Autistin. Brauche immer etwas um gewisse Sachen zu verstehen. :huh:
    @RodFromGermany Ich muss dich auch bitten, deine Wortwahl mal ein bisschen zu überdenken. Dinge wie "grottenschlecht" und "du hast keine Ahnung" sind beleidigend. Wenn du deine Meinung nicht anders kundtun kannst, dann ist es wohl besser, sich ganz zurückzuhalten.
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum