跟踪下,看fDlg.GetPathName()返回什么

解决方案 »

  1.   

    我跟踪过,没问题,fDlg.GetPathName()返回的是我指定文件的全路径
      

  2.   

    把打开方式改为:CFile::modeReadWrite
      

  3.   

    文件是我用CFile::Write()函数写入的,文件大小能读出来,就是在用Read()读数据时出现那个错误,这是我跟踪的数据C:\Program Files\Microsoft Visual Studio\MyProjects\doc\docmanager\data\archive01.mdb
      

  4.   

    CFile::modeRead   Opens the file for reading only.
    CFile::modeWrite   Opens the file for writing only.
    估计系统也不知道是只读呀,还是只写呀,晕了哈哈...所以人家提供了
    CFile::modeReadWrite   Opens the file for reading and writing.
      

  5.   

    当文件的长度>=MAX_PATH时,会导致缓冲区的不够大解决办法:
    TCHAR sDir[MAX_PATH + 1]; 另外,不能用 CFile::modeRead|CFile::modeWrite
    必需要用 CFile::modeReadWrite
    (你看一下它们的值就知道为什么了)
      

  6.   

    你的代码中就没有path,用fDlg.GetPathName()获取不到文件路径,我觉得应该用GetFileName()这个函数,你去试试