Entwickler-Ecke
Basistechnologien - Rekursive Schleife
lodibach - Mi 22.09.10 14:53
Titel: Rekursive Schleife
Hallo, ich möchte ein Programm programmieren, mit dem man Dateien jeder Art aus Unterordnern in einen Ausgabe Ordner erst kopiert & dann löscht. Das Programm soll also rekursiv arbeiten und so jeden Ordner, nachdem er alle Dateien daraus verschoben hat, löschen.
Wäre dankbar für Hilfe.
Christian S. - Mi 22.09.10 14:56
Hallo!
Wo genau liegt denn jetzt das Problem? :-)
Grüße
Christian
bakachan - Mi 22.09.10 14:56
Und was genau ist jetzt dein Problem?
lodibach - Mi 22.09.10 15:05
ich brauche den code für die schleife ;)
tschuldigung ;) vergessen ;):D
Necaremus - Mi 22.09.10 15:36
prinzipiell sollten dir Rekursionen ja bekannt sein, sonst würdest du danach ja nicht fragen^^
und es ist hier eher selten, dass als "hilfe" der fertige code geliefert wird :p
überleg doch am besten selber erstmal, wie man das am besten lösen kann und versuch es!
wenn du dann scheiterst kannst du ja deinen code posten und dann kann man dir ja immer noch helfen ;)
prinzipiel würd ich sagen sollte es so aussehen:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| myRe(DirInfo dIParent){ foreach (dirInfo in diParent) { foreach (file in dirInfo) { copy(file); delete(file); } myRe(dirInfo) }} |
lodibach - Mi 22.09.10 17:15
mein Code:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32:
| public static void DeleteFileSystemInfo(FileSystemInfo oFileSystemInfo, string CopyPath, bool bDelete) { oFileSystemInfo.Attributes = FileAttributes.Normal; var oDirInfo = oFileSystemInfo as DirectoryInfo;
if (oDirInfo != null) { foreach (var oDirEntry in oDirInfo.GetFileSystemInfos()) { DeleteFileSystemInfo(oDirEntry, CopyPath, bDelete); } }
if (oFile.Name.EndsWith(".mp3") == true) { oFile.CopyTo(CopyPath); oFile.Delete(); } else { if (bDelete == true) { oFile.Delete(); } } } |
mein Problem:
wie bekomm ich nun meine oFile?
wie kann ich diese bestimmen?
Moderiert von
Christian S.: C#-Tags hinzugefügt
danielf - Do 23.09.10 08:19
Hallo,
das Framework bietet schon fertige rekursive Dateiverwaltungsfunktionen an. So kannst du mit
Directory.GetFiles [
http://msdn.microsoft.com/de-de/library/ms143316.aspx] dir alle Dateien (inklusive Unterordner) mit einem bestimmten Pattern bekommen. Darüber musst du nur noch iterieren und kopieren/bewegen. Am Enden den Root-Ordner löschen und fertig.
Gruß
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!