Dateinamen u. Ordner effizient numerisch ordnen
-
Tag Leute
Mir geht es schon seit geraumer Zeit auf die Nerven dass mit FindFirsFile/FindNextFile bzw. mit CFindFile die Dateien und Ordner mit Nummern im Dateinamen nicht in numerischer Reihenfolge eingelesen werden.
Gibt es da eine effiziente Methode zu sortieren?
Gib es eine bessere Herangehensweise als folgende:
Als erstes wird eine Kopie aller Pfade angefertigt.
Dort werden dann in allen Pfaden die einzelnen Ordner durchsucht und dort nach der Zahl mit den meißten Stellen gesucht.
Danach werden alle Zahlen durch auffüllen mit führenden 0en auf die gleiche Anzahl von Stellen gebracht.So müsste dass Sortieren den gewünschten Effekt haben.
Sehe ich dass richtig, oder gibt es einen Weg mit weniger Aufwand?mfg Sepp
-
Schau dir mal System::IO::Directory::GetFiles und Array::Sort an

-
Tschuldigung.
Wie's aussieht habe ich mich bei der Abteilung geirrt.
Ich hatte eigentlich nach einer native/MFC/ATL Lösung gesucht.Aber danke für den Tipp.
Wenn ich ein managed Projekt mache, weis ich wonach ich jetzt suchen muß.
-
Dieser Thread wurde von Moderator/in Jochen Kalmbach aus dem Forum C++/CLI mit .NET in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
AFAIK gibt es ab Windows Vista eine Funktion, die das macht... hab aber gerade den Namen nicht im Kopf...
Ansonsten musst Du es selber machen...
-
StrCmpLogicalW
http://msdn.microsoft.com/en-us/library/bb759947(VS.85).aspxAchtung geht aber erst ab XP!
-
Super... gibt es ja sogar schon ab XP

-
@C++ Forumbot
Danke für's verschieben.
@Martin Richter
Vielen Dank, genau dass habe ich gesucht.Dass diese Funktion erst ab XP funktioniert ist nicht so tragisch.
Ich schreibe inzwischen eher selten Win9x und W2K kompatible Programme.
Außerdem ist mir schon dass ein oder andere mal aufgefallen dass Funktionen, die laut msdn erst ab XP funktionieren auch unter W2K laufen.