我想检查文件是否存在以及是否存在是否为空。
我可以处理文件存在;
if FileExists(fileName) then
else
ShowMessage('File Not Exists');
如何测试空文件?
答案 0 :(得分:6)
正如@TLama建议的那样,如果找到文件并且大小为零,则以下函数返回true。
function FileIsEmpty(const FileName: String): Boolean;
var
fad: TWin32FileAttributeData;
begin
Result := GetFileAttributesEx(PChar(FileName), GetFileExInfoStandard, @fad) and
(fad.nFileSizeLow = 0) and (fad.nFileSizeHigh = 0);
end;
答案 1 :(得分:4)
测试文件大小等于零。要查看如何查找文件大小,请参阅此问题:Getting size of a file in Delphi 2010 or later?
答案 2 :(得分:0)
var
sr: TSearchRec;
begin
if FindFirst('filename', faAnyFile, sr) = 0 then // If file exists ...
try
Result.size := sr.Size; // Check here is sr.Size = 0
Result.date := FileDateToDateTime(sr.Time);
finally
FindClose(sr);
end;
end;
更新:作为更明确的答案,有完整的功能:
function FileExistsAndEmpty(const AFileName: string): Boolean;
var
sr: TSearchRec;
begin
Result := FindFirst(AFileName, faAnyFile, sr) = 0;
if Result then begin // file exists ...
Result := sr.Size = 0;
FindClose(sr);
end;
end;