例如8G的文件
CFile.seek怎样能支持大文件?谢谢

解决方案 »

  1.   


    LZ去这里看看,介绍的很详细
    http://baike.baidu.com/view/994710.html?wtp=tt
      

  2.   

    读取肯定可以,32位平台下,好像没有大小文件限制。但读取太大文件用CFile效率可能会低一些。对于你的需求,可以考虑用 映射文件 来读,效率会高很多。
      

  3.   

    c中有fseek64,不知道CFile里面哪个方法跟这个函数对应
      

  4.   

    CFile::Seek(LONGLONG lOff, UINT nFrom)
      

  5.   

    用CFile类中提供的ReadHuge函数,其声明在AFX.H中,可以读取大于65535字节的巨型数据,其需要的巨型缓冲区使用Windows的API函数GobalAlloc来创建。
    //构造CFile对象
    CFile MyFile(m_strSrcFile,CFile::modeRead); //获得文件大小
    DWORD Length = MyFile.GetLength();
    //分配缓冲区,大小为文件大小
    void far* p = ::GlobalAlloc(0,Length);  //将文件的数据读到缓冲区中
    MyFile.ReadHuge(p,Length); //关闭文件对象
    MyFile.Close(); //释放缓冲区
    ::GlobalFree(p);
    AfxMessageBox("File Copy Succeed!");