Einen schönen Nachmittag,
für einen Bildbetrachter lese ich alle Dateien eines Verzeichnisses ein
und schreibe sie in eine recordbasierte Datei..
Die Datei befülle ich in einer Schleife
mit FindFirst und FindNext.
Delphi-Quellcode:
function TForm1.getPictures(StartDir:String;recursive:Boolean):Integer;
var
SearchRec : TSearchrec;
begin
result := 0;
if FindFirst(StartDir+'\*.jpg',faAnyFile,SearchRec) = 0 then
begin
imageSet.filePath:=ExtractFilePath(StartDir);
imageSet.fileName:=ExtractFileName(SearchRec.Name);
write(BatchFile,ImageSet);
inc(result);
While FindNext(SearchRec) = 0 do
begin
imageSet.filePath:=ExtractFilePath(StartDir);
imageSet.fileName:=ExtractFileName(SearchRec.Name);
write(BatchFile,ImageSet);
inc(result);
end;
FindClose(SearchRec);
end;
if recursive then
if (FindFirst(StartDir+'*.*',faDirectory,SearchRec)=0) then
begin
repeat
if (SearchRec.Name<>'.') and (SearchRec.Name<>'..') then
getPictures(StartDir+SearchRec.Name,true);
until FindNext(SearchRec)<>0;
FindClose(SearchRec);
end;
end;
Mein Problem ist, die Dateien werden nicht in
der korrekten Reihenfolge eingelesen.
Die gleiche Reihenfolge sehe ich aber auch
wenn ich wenn ich dem Verzeichnis das dir Kommando
ausführe:
Zitat:
19.05.2004 05:50 599.986 AU010026.jpg
19.05.2004 05:50 1.219.131 AU010027.jpg
19.05.2004 05:50 1.033.227 AU010028.jpg
19.05.2004 05:50 915.389 AU010029.jpg
19.05.2004 05:50 693.484 AU010030.jpg
19.05.2004 05:50 651.635 AU010031.jpg
19.05.2004 05:50 608.949 AU010032.jpg
19.05.2004 05:50 1.011.843 AU010033.jpg
19.05.2004 05:50 949.296 AU010035.jpg
19.05.2004 05:50 761.439 AU010036.jpg
19.05.2004 05:50 898.526 AU010037.jpg
19.05.2004 05:50 898.624 AU010038.jpg
19.05.2004 06:04 684.055 AU020035.jpg
19.05.2004 06:03 445.374 AU020002.jpg
19.05.2004 06:03 913.236 AU020003.jpg
Die rot markierte Datei sollte meines Erachtens erst einiges später
in der Liste auftauchen.
Im explorer werden die Dateien in der richtigen Reihenfolge aufgelistet.
Hat da jemand eine Lösung dazu, oder ist es das beste die
Dateinamen in eine StringList zu schreiben und diese zu sortieren?
OS ist
w2k SP4
Grüße
Klaus