Veröffentlicht 17. August 200916 j 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?
17. August 200916 j wie wäre es, wenn du nach verschieben eines subdirectories auch den index -1 zählst, weil ja dann eins weniger vorhanden ist..
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.