Jak sprawdzic czy plik istnieje w WinApi
Aby w WinApi sprawdzic czy plik istnieje, trzeba sprobowac go utworzyc i skorzystac z zwracanego bledu, np.
Uzycie wyglada tak jak przy VCL, czyli:
function FileExists(FName: String): Boolean; var FileO: THandle; begin FileO := CreateFile(PChar(FName), GENERIC_READ, FILE_SHARE_READ, Nil, OPEN_EXISTING, 0, 0); // proba utworzenia pliku if FileO <> INVALID_HANDLE_VALUE then // jesli plik istnieje Result := True else // jesli plik nie istnieje Result := False; CloseHandle(FileO); end;
Uzycie wyglada tak jak przy VCL, czyli:
if FileExists('C:\plik.txt') then MessageBox(0, 'Plik istnieje!', 'Informacja', 0) else MessageBox(0, 'Plik nie istnieje!', 'Informacja', 0);
2 komentarze
Ja raczej zastosowal bym GetFileAttributes, bo CreateFile moze zwrocic INVALID_HANDLE_VALUE takze w przypadku plikow do ktorych nie mamy dostepu a istnieja.
to niestarczy, np. mi - program w WinApi to 14 kB a zwykle FileExists to + 200 kB?