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? Zitieren
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.. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.