当我从 Delphi 6 应用程序对只读文件使用 Windows API 调用 GetFileSizeEx() 时,我收到操作系统错误代码 6(“无效文件句柄”)。如果我从文件中删除只读属性,错误就会消失。为什么我会收到该错误,是否有一种方法可以使用该调用或类似的只读文件调用?
相关代码如下:
function GetFileSizeEx(hFile: THandle; var FileSize: Int64): BOOL; stdcall; external 'kernel32.dll' name 'GetFileSizeEx';
function easyGetFileSize(theFileHandle: THandle): Int64;
begin
if not GetFileSizeEx(theFileHandle, Result) then
RaiseLastOSError;
end;
--罗施勒
最佳答案
您是否检查了打开文件的结果以获取文件句柄?显然,如果文件无法打开,则您将使用无效句柄调用 GetFileSizeEx
。您需要以只读模式打开该文件。
关于windows - 为什么使用 GetFileSizeEx() 将文件标记为只读时会出现 "Invalid handle"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6066896/