我要查重文件  md5 大文件太慢了 
文件大小 是不是个好方法  
请大牛指点

解决方案 »

  1.   

     CreateFile +  GetFileSize
    FFile_Handle := CreateFile(PChar(FSourceFileName),GENERIC_READ,FILE_SHARE_READ,nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);  
      if FFile_Handle = INVALID_HANDLE_VALUE then Exit;  
      //获取文件尺寸  
      filesize := GetFileSize(FFile_Handle,nil);  
      

  2.   

    GetFileSize   是 Cardinal 类型 请问 大于4GB 文件 怎么获取  ?
      

  3.   

    var
      WIN32FindData: TWIN32FindData;
      Rec: TSearchRec;
      filesize: Integer;
      FFile_Handle: THandle;
      FSourceFileName: string;
    begin
      if FindFirst(FSourceFileName, faDirectory, Rec) = 0 then
        filesize := Rec.Size;  if FindFirstFile(PChar(FSourceFileName), WIN32FindData) <> INVALID_HANDLE_VALUE
        then
        filesize := WIN32FindData.nFileSizeLow;  FFile_Handle := CreateFile(PChar(FSourceFileName), GENERIC_READ,
        FILE_SHARE_READ, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
      if FFile_Handle = INVALID_HANDLE_VALUE then
        Exit;
      filesize := GetFileSize(FFile_Handle, nil);
    end;
      

  4.   

    用 FindFirstFile 读 WIN32FindData.nFileSizeHigh 然后加  nFileSizeLow
    处理下
      

  5.   

    兄弟们  不要这样呀 filesize: Integer;
    我这  7  、8 G文件都有   单个文件 
      

  6.   

      声明filesize int64的。。
    if FindFirstFile(PChar(FSourceFileName), WIN32FindData) <> INVALID_HANDLE_VALUE
        then
      begin
          Int64Rec(filesize).Hi:=WIN32FindData.nFileSizeHigh ;
          Int64Rec(filesize).Lo:=  WIN32FindData.nFileSizeLow  ;  end;或者用GetFileSizeEx