现在的情况是这样的,我读写一个文件,但在某种情况下,原文件尾部的一些数据无用 了,我需要重新设置文件的大小,在32位的情况下可以使用_chsize修改文件大小,可是它是32位的,我希望能有64位的解决办法,请各位大人帮忙!
 不胜感激,

解决方案 »

  1.   

    不知道 MFC 的 CFile 中 SetFileLength支援64不?我想可能可以。
      

  2.   

    不用MFC?应该有API可以直接修改文件大小吧?
      

  3.   

    如果一楼的SetFileLength可能解决,想用SDK方式的话就看一下MFC源码的CFile::SetFileLength,看里面调用哪个API,你也跟着调用就行了吧。
      

  4.   

    可以先移动到结尾的地方,再使用SetEndOfFile
      

  5.   

    BOOL SetFilePointerEx(
      HANDLE hFile,                    // handle to file
      LARGE_INTEGER liDistanceToMove,  // bytes to move pointer
      PLARGE_INTEGER lpNewFilePointer, // new file pointer
      DWORD dwMoveMethod               // starting point
    );
      

  6.   

    LARGE_INTEGER li,lo;
    li.QuadPart = i64;//或设置li.LowPart和li.HighPart; SetFilePointerEx(h,li,&lo,FILE_BEGIN);
      

  7.   

    再问一下 ,能不能把用_open打开的文件句柄给windows API 用?例如WriteFile