Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#25

Re: Klasse für FindFirstFile/FindNextFile

  Alt 1. Mai 2010, 11:49
Die letzen Änderungen waren (wenn ich mich richtig erinnere):

das IgnoreDirectory von NormanNG

Daniels Doku-Wunsch
Delphi-Quellcode:
// Cancel > bricht den gesamten Suchvorgang ab
// IgnoreDirectory > überspringt das Auslesen dieses Verzeichnisses
// und aller seiner Unterverzeichnisse
// Errors (HRESULT) > NO_ERROR = S_OK = 0
// > ERROR_FILE_NOT_FOUND = 2 > The system cannot find the file specified.
// > ERROR_PATH_NOT_FOUND = 3 > The system cannot find the path specified.
// > ERROR_NO_MORE_FILES = 18 > The user set "Cancel" in the callback to TRUE.
ein etwas kürzerer Aufruf
und ein paar Prüffunktionen des neuen Rpckgabewertes
Delphi-Quellcode:
class function FindEx(RootFolder, Mask: string; SubFolders: Boolean; OnFindFile: TOnFindFile;
  OnFindDirectory: TOnFindDirectory = nil; OnDirectoryUp: TOnDirectoryUp = nil): HRESULT;
class function isOK(E: HRESULT): Boolean;
class function GetErrorStr(E: HRESULT): String;
Die Fehlerprüfung, bzw. Fehlerrückgabe als Result
> siehe alle Zeilen mit Result, Error, GetLastError in .Search
und eine zugehörige Auswertung in .Find,
wozu auch das neue Feld FFound gehört
Delphi-Quellcode:
function TFindFiles.Find(RootFolder: string): HRESULT;
begin
  FFound := False;
  FCancel := False;
  Result := Search(RootFolder);
  if (Result = NO_ERROR) and not FFound then Result := ERROR_FILE_NOT_FOUND;
  if FCancel then Result := ERROR_NO_MORE_FILES;
end;
[edit]
noch schnell ein DecodeFiletime verbaut, da viele mit TFileTime ja nicht viel anfangen können.
DecodeFiletime
class function DecodeFiletime(const FileTime: TFileTime): TDateTime;
$2B or not $2B
  Mit Zitat antworten Zitat