Z zqw0117 Unregistered / Unconfirmed GUEST, unregistred user! 2006-07-26 #21 数据库文件是正在独占方式下被SQL使用,这个时候,任何CreateFile都打不开它,所以根本得不到实际大小(你在属性里面看看,Windows也应该显示的是0字节).不过,你试试用FindFileFirst函数,也许能得到大小的.
数据库文件是正在独占方式下被SQL使用,这个时候,任何CreateFile都打不开它,所以根本得不到实际大小(你在属性里面看看,Windows也应该显示的是0字节).不过,你试试用FindFileFirst函数,也许能得到大小的.
J jfyes Unregistered / Unconfirmed GUEST, unregistred user! 2006-07-28 #23 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;
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;