我需要制作一个与Unix兼容的Windows Delphi例程,以确认文件名在文件系统中是否与所需的大小写完全相同,例如“John.txt”存在,而不是“john.txt”。
如果我检查“FileExists('john.txt')”,它对于John.txt和JOHN.TXT始终为真,这是由于Windows。
如何创建“FileExistsCaseSensitive(myfile)”函数来确认文件确实是它应该是的。
DELPHI Sysutils.FileExists使用以下函数来查看文件是否存在,如何更改它以双重检查文件名在文件系统中是小写并存在:
function FileAge(const FileName: string): Integer;
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;