Gooner85 Geschrieben 17. August 2009 Geschrieben 17. August 2009 Hallo Freunde, ich hoffe ihr könnt mir weiterhelfen. Ich versuche alle Unterordner eines Verzeichnisses in EINEN Unterordner zu verschieben. Das heißt, ich habe z.B. 4 Unterordner: OrdnerA OrdnerB OrdnerC OrdnerD und möchte OrdnerA, OrdnerC und OrdnerD in OrdnerB verschieben. Mein Code sieht demnach so aus: Dim subDir As String() = Directory.GetDirectories(pfad) Dim DirCont As String() Dim DIRname As String For a As Integer = 0 To subDir.Length - 1 DirCont = Directory.GetDirectories(pfad) DIRname = subDir(a).Substring(subDir(a).LastIndexOf("\") + 1) If (DirCont(a).Length = 1) And (DIRname Like "OrdnerB") Then Exit For ElseIf (Not (DirCont(a).Length = 1)) And (DIRname Like "OrdnerB") Then a = a + 1 DIRname = subDir(a).Substring(subDir(a).LastIndexOf("\") + 1) Directory.Move(pfad & DIRname, pfad & "Ordner\" & DIRname) Else Directory.Move(pfad & DIRname, pfad & "OrdnerB\" & DIRname) End If Next "pfad" ist dabei mein Verzeichnis, indem die Unterordner sich befinden. Im Prinzip verschiebe ich mittels FOR-Schleife alle vorhandenen Ordner in "OrdnerB". Mit der If-Verzweigung sorge ich nun dafür, dass "OrdnerB" beim verschieben übergangen wird. Ich erhalte leider beim Verschieben von OrdnerC eine IndexOutOfRangeException. Weiß jemand Rat?
0815FIA Geschrieben 17. August 2009 Geschrieben 17. August 2009 wie wäre es, wenn du nach verschieben eines subdirectories auch den index -1 zählst, weil ja dann eins weniger vorhanden ist..
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden