Dateien verschieben

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von kwon.

    Dateien verschieben

    Hallo,

    ich benötige etwas Hilfe...

    Ich habe einen Ordner (D:\Daten\ar), dieser beinhaltet viele Unterordner. In den Unterordnern sind immer nur Dateien. Diese Dateien möchte ich aus den Unterordnern in den Ordner (D:\Daten\ar) verschieben.

    Manuell wäre das sehr aufwendig - deshalb habe ich versucht etwas zu programmieren, das die Aufgabe erledigt.

    Leider bricht der Vorgang in Zeile 13 (Move-Befehl) ab, mit der Fehlermeldung "Eine Datei kann nicht erstellt werden, wenn sie bereits vorhanden ist."

    Könnt ihr mir bitte sagen was ich falsch mache?

    Vielen Dank!!

    Viele Grüße,

    kwon

    VB.NET-Quellcode

    1. Imports System.IO
    2. Public Class Form1
    3. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    4. End Sub
    5. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    6. Dim o As Object
    7. Dim pfadUeberOrdner As String = "D:\Daten\ar\"
    8. Dim d As New DirectoryInfo(pfadUeberOrdner)
    9. For Each o In Directory.GetDirectories(pfadUeberOrdner)
    10. Dim du As New DirectoryInfo(o.ToString)
    11. Dim af As FileInfo() = du.GetFiles("*.*")
    12. For Each f In af
    13. File.Move(o.ToString & "\" & f.ToString, pfadUeberOrdner & f.ToString)
    14. Next
    15. Next
    16. End Sub
    17. End Class
    Aus dem Bauch heraus würde ich sagen prüfe mal ob in af wirklich das drin steht was du dir erhoffst. Und du musst natürlich auch eine Prüfung durchführen ob deine Datei, die du bewegen willst, nicht schon am Ziel vorhanden ist. Es könnte ja passieren, dass der Dateiname, auch wenn es eine ganz andere Datei ist, bereits vergeben ist. Dann kann er natürlich nicht einfach so verschieben.
    Es liegt daran, was @ThomasG82s zweiter Punkt ist: Wenn im Zielverzeichnis eine Datei schon mit diesem Namen vorhanden ist, kommt der Fehler. Also:
    • D:\Daten\ar\Foo\Bar.txt wird nach D:\Daten\ar\ verschoben -> D:\Daten\ar\Bar.txt
    • D:\Daten\ar\Bazz\Bar.txt wird nach D:\Daten\ar\ verschoben -> D:\Daten\ar\Bar.txt; aber es gibt bereits eine Datei mit dem Namen -> o.g. Fehlermeldung
    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.
    Hallo ThomasG82,
    Hallo VaporiZed,

    vielen Dank für eure Hilfe!!

    Ich habe in der Zwischenzeit eine Lösung mit dem Windows Explorer gefunden...
    Da ich die Lösung in dem Fall schnell benötigt habe, habe ich die Lösung mit dem Windows Explorer, gegenüber einer Programmierung, bevorzugt.

    Ist man im Überordner, dann kann man mit der Suchfunktion nach *.* suchen lassen - hier werden dann u.a. die Dateien der ganzen Unterordner aufgelistet. Diese kann man nun kopieren, ohne in jeden Unterordner navigieren zu müssen.

    Ich wünsche eine gute Nacht...