CFile  fSendFile(strFileName,CFile::modeRead|CFile::typeBinary);
   //set file pointer
fSendFile.Seek(m_dwFileSeek,CFile::begin);
   //read 8k  data
UINT  nReadFileBlockLen=fSendFile.Read(pFileBuff,READ_DATA_LEN);
我在调试的时候,发现执行到上面最后一行出错,说“对一未命名文件进行访问时发生了一个不明的错误”,而此时的fSendFile的文件名strFileName确实存在,并有值,请问,我在是么地方弄错了。

解决方案 »

  1.   

    对了,此时的strFileName的文件是一个压缩过的ZIP文件,而缓冲区pFileBuff是一个BYTE型的缓冲区,请问大家,实在是急呀
      

  2.   

    你最好用CFile::Open来打开文件,这样可以确切地知道文件是否打开,是否被其它程序共享。
      

  3.   

    用TRY CATCH检测一下你的CFile是否构造成功,或是Debug的时候看一下fSendFile的值
      

  4.   

    从表面上看好象没错.
    不过你试试
    try
    {}
    catch(CFileException, e)
    {
       switch(e->m_cause)
       {
        case CFileException::generic: ...
        case CFileException::fileNotFound: //...
        //////
        }
    }
    ///////////////////////////////////////////////////
    // CFileException::m_cause`value
    CFileException::badPath   CFileException::tooManyOpenFiles   CFileException::accessDenied   CFileException::invalidFile   
    CFileException::removeCurrentDir   CFileException::directoryFull   
    CFileException::badSeek   
    CFileException::hardIO   
    CFileException::sharingViolation  CFileException::lockViolation   
    CFileException::diskFull   
    CFileException::endOfFile