Как проверить пустой ли файл в delphi?

Пользователь

от alisa.bahringer , в категории: Другие , 3 года назад

Как проверить пустой ли файл в delphi?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

P

Пользователь

от Programmer , 3 года назад

@alisa.bahringer 

Добрый день!

Для того чтобы проверить пустой ли файл его нужно прочесть и после этого измерить длину.

Пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
var FileName: string;
	  list: TStringList;	
begin
	FileName:= 'C:\Temp\1.txt';
    list:= TStringList.Create;
	list.LoadFromFile(FileName);
	if length(list.Text) = 0 then
		ShowMessage('Файл пустой') else	
		ShowMessage('Файл не пустой') ;
    list.free;
end;

Пользователь

от olen.shanahan , год назад

@alisa.bahringer 

Вы можете проверить размер файла с помощью функции GetFileSize (Winapi.Windows) и убедиться, что он равен нулю:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
function IsFileEmpty(const FilePath: string): Boolean;
var
  FileInfo: TWin32FileAttributeData;
  FileSize: Int64;
begin
  Result := False;
  if not GetFileAttributesEx(PChar(FilePath), GetFileExInfoStandard, @FileInfo) then
    Exit;
  FileSize := FileInfo.nFileSizeLow or (Int64(FileInfo.nFileSizeHigh) shl 32);
  Result := FileSize = 0;
end;


Вы можете использовать эту функцию, чтобы проверить, был ли переданный вам файл FilePath пустым:

1
2
if IsFileEmpty('C:TempMyFile.txt') then
  ShowMessage('Файл пуст');