如何得到大于2G文件的大小(50分)

  • 主题发起人 主题发起人 xgwzw
  • 开始时间 开始时间
数据库文件是正在独占方式下被SQL使用,这个时候,任何CreateFile都打不开它,所以根本得不到实际大小(你在属性里面看看,Windows也应该显示的是0字节).不过,你试试用FindFileFirst函数,也许能得到大小的.
 
to zqw0117
findfirst有大小限制
 
function GetFileBytes(FileName: string): Int64;

var
F: TWin32FindData;
H: THandle;
begin
H := FindFirstFile(PChar(FileName), F);
if H <> INVALID_HANDLE_VALUE then
try
Result := F.nFileSizeHigh * 4294967296 + F.nFileSizeLow;

finally
Windows.FindClose(H);
H := INVALID_HANDLE_VALUE;
end;
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
Caption := IntToStr(GetFileBytes(
'C:/pagefile.sys'
//'C:/Program Files/Microsoft SQL Server/MSSQL/Data/wj_yktdat.mdf'
));
end;
 
多人接受答案了。
 
to jfyes
谢谢 测试通过!
 
后退
顶部