Доброго времени суток.
Ребят, у кого-нибудь есть листинг этой функции? из модуля SysUtils. Либо ее аналог, позволяющий проверять существование файла.
Пишу без подключаемых модулей, классов и объектов.
function FileExists(FileName: PChar): Boolean;
var
Handle: DWORD;
FindData: TWin32FindData;
begin
Result:=false;
Handle:=FindFirstFile(FileName, FindData);
if Handle<>INVALID_HANDLE_VALUE then
begin
FindClose(Handle);
Result:=true;
end;
end;
Quote
не нашел
Там всё есть. Плохо искал значит
Quote
причем тут это?
При том, что при клике попадешь на листинг данной функции.
Вот как она выглядит в SysUtils:
Code
function FileAge(const FileName: string): Integer;
{$IFDEF MSWINDOWS}
var
Handle: THandle;
FindData: TWin32FindData;
LocalFileTime: TFileTime;
begin
Handle:=FindFirstFile(PChar(FileName), FindData);
if Handle<>INVALID_HANDLE_VALUE then
begin
Windows.FindClose(Handle);
if (FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY)=0 then
begin
FileTimeToLocalFileTime(FindData.ftLastWriteTime, LocalFileTime);
if FileTimeToDosDateTime(LocalFileTime, LongRec(Result).Hi,
LongRec(Result).Lo) then
Exit;
end;
end;
Result:=-1;
end;
{$ENDIF}
{$IFDEF LINUX}
var
st: TStatBuf;
begin
if stat(PChar(FileName), st)=0 then
Result:=st.st_mtime
else
Result:=-1;
end;
{$ENDIF}
function FileExists(const FileName: string): Boolean;
{$IFDEF MSWINDOWS}
begin
Result:=FileAge(FileName)<>-1;
end;
Выбирай
Сообщение отредактировал Волк-1024 - Среда, 29.08.2012, 22:34
function FileExists( const FileName : KOLString ) : Boolean;
var FD: TFindFileData;
LFT: TFileTime;
Hi, Lo: Word;
e: DWORD;
begin
Result := FALSE;
e := SetErrorMode( SEM_NOOPENFILEERRORBOX or SEM_FAILCRITICALERRORS );
if Find_First( Filename, FD ) then
begin
if FD.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY = 0 then
begin
FileTimeToLocalFileTime( FD.ftLastWriteTime, LFT );
if FileTimeToDosDateTime( LFT, Hi, Lo ) then
Result := TRUE;
end;
Find_Close( FD );
end;
SetErrorMode( e );
end;