Как определить размер файла
Способ 1:
//Если файл не существует, то вместо размера
файла функция вернёт -1
//========================================================
function GetFileSize(FileName: String): Integer;
var
FS: TFileStream;
begin
try
FS := TFileStream.Create(Filename, fmOpenRead);
except
Result := -1;
end;
if Result <> -1 then Result := FS.Size;
FS.Free;
end;
//========================================================
//Пример использования функции:
//==========================================================
procedure TForm1.FormCreate(Sender: TObject);
begin
ShowMessage(IntToStr(GetFileSize('c:\prova.pdf')));
end;
//==========================================================
Способ 2:
function GetFileSizeByName(FileName: String): Integer;
var
FindData: TWin32FindData;
hFind: THandle;
begin
Result := -1;
hFind := FindFirstFile(PChar(FileName), FindData);
if hFind <> INVALID_HANDLE_VALUE then
begin
Windows.FindClose(hFind);
if (FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = 0
then
Result := FindData.nFileSizeLow;
end;
end;
Способ 3:
(Прислал: Andrey)
Function GetFileSize(namefile : string) : Integer;
Var
InfoFile : TSearchRec;
AttrFile : Integer;
ErrorReturn : Integer;
Begin
AttrFile := $0000003F; {Any file}
ErrorReturn := FindFirst(namefile,AttrFile,InfoFile);
if ErrorReturn <> 0 Then Result := -1 {в случае, если файл не
найден}
else Result := InfoFile.Size; {Размер файла в байтах}
FindClose(InfoFile);
End;
|