GetDirectories - Sortierung der Ordner
-
Nach welcher Reihenfolge werden die Array-Einträge durch
GetDirectories im jeweiligen Ziel-Array zurückgegeben?fArray = System.IO.Directory.GetDirectories(sourcePath, "*", System.IO.SearchOption.AllDirectories);
Ist fArray immer gleich sortiert? Ist die Reihenfolge unabhängig
von Systemeinstellungen? Werden die Ordner-Attribute ignoriert?
Könnte es sein, dass im ersten Element fArray[0] ein Pfad vorkommt,
der ganz hinten in der Hierarchie im Dateisystem liegt?Hintergrund:
Ich möchte eine Kopierroutine bauen, die alle Dateien eines Ordners kopiert.
-
Den Fakt ob die Daten immer in der Reihenfolge vorliegen wie du sie brauchst, würde ich ignorieren, lieber würde ich das alles nachträglich nochmal Sortieren, dann bist du auf der sicheren Seite.
-
Hallo csofti,
verzichte lieber auf 'AllDirectories' und bau dir deine eigene rekursive GetDirectories-Methode (s. z.B. http://www.mycsharp.de/wbb2/thread.php?threadid=58665).
Dann kannst du Ordner für Ordner kopieren und hast eine bessere Kontrolle darüber...
-
@Th69
Vielen Dank für den Hinweis und dem Link. Die dort angesprochenen theoretischen
Probleme, sind für mein Projekt nicht relevant. Zumindest möchte ich im Moment
die bestehenden Funktionen noch nicht umfassend ändern. Später werde ich jedoch
die Änderungen einarbeiten. Danke nochmal!@Firefighter
Soll ich zur Sortierung Array.Sort(fArray) benutzen?
-
csofti. naja du musst dazu nicht unbedingt Array.Sort benutzen, da du ja ein Array zurückbekommst, kannst du auch direkt darauf .Sort anwenden.
-
Firefighter schrieb:
csofti. naja du musst dazu nicht unbedingt Array.Sort benutzen, da du ja ein Array zurückbekommst, kannst du auch direkt darauf .Sort anwenden.
Nicht ganz ... .Sort ist statisch
-
Stimmt bei Array isses Statisch. dann macht man eben noch ein ToList und schon gehts