Ich führe ein Dateilisting mit folgender Methode durch.
Leider habe ich auf meiner Festplatte ein paar Dateien und ORDNER, deren Dateiname oder Ordnername
Unicode (Japanische Schriftzeichen) enthält. Das Listing versucht den Ordner zu öffnen, öffnet sich aber immer wieder
selbst (rekursiv..) und fährt sich dort fest.
Das gleiche passiert mit einem Systemordner, der ebenfalls "für den Publikumsverkehr geschlossen" ist.^^
Wie kann ich diese Fehler abfangen? Gibt es eine Funktion die
Unicode erkennt? Und eine die blöde
nicht öffnen-bare Ordner erkennt?
Funktion (Ausschnitt):
Delphi-Quellcode:
if FindFirst('*', faAnyFile, searchResult) = 0 then
begin
repeat
Application.ProcessMessages;
SetLength(ergebnisse, (Length(ergebnisse)+1));
if ((searchResult.Attr and faDirectory) = faDirectory) then begin
ergebnisse[i].is_directory := true;
ergebnisse[i].name := searchResult.Name;
ergebnisse[i].size := 0;
end
else begin
ergebnisse[i].is_directory := false;
ergebnisse[i].name := searchResult.Name;
ergebnisse[i].size := searchResult.Size;
end;
Application.ProcessMessages;
Inc(i);
until FindNext(searchResult) <> 0;
FindClose(searchResult);
end;
Edit: ich weiß, die Rekusivität is hier nicht zu sehen, aber hier in der if müsste etwas hin was diese blöden Sachen abfängt.
MSVC2008 (C/C++ with QT), Delphi
RAD 2010, Flash CS5 (FDT/Adobe), Java EE (Eclipse), PHP5
Antwortsprachen: Deutsch, Englisch, Französisch, Japanisch