如何判断被占用的文件已经存在,和如何读写被占用的文件呀?
如果文件被占用,用Open返回的始终是FALSE,createfile也是无法创建文件的。。
希望高手指点!

解决方案 »

  1.   

    Open返回false后,调用getlasterror看返回错误或者捕获异常查看失败原因就知道了
      

  2.   

    CFile fp;
    if (fp.Open("c:\\test.txt",CFile::shareDenyWrite| CFile::shareDenyRead))
    {
        //未被打开
    }
    else
    {
        //已经被打开了
    }
      

  3.   

    被占用的只能以Shareread方式打开,写不了的
      

  4.   

    fp.Open("c:\\test.txt",CFile::shareDenyWrite| CFile::shareDenyRead)
    返回FALSE时  除了文件被占用外,还有可能是这个文件不存在吧?我想达到的目的是,判断一个文件是否存在(包括占用和没有被占用的情况)
      

  5.   

    GetLastError() 看返回的错误代码
      

  6.   


    CFile::shareDenyNone   CFile::shareDenyRead  
      

  7.   


    那不如先查看是不是存在文件inline BOOL FileExists(
       const char* pszPath 
    );
      

  8.   

    我想用楼上的方法,可以很直接的解决我现在的问题!但是   
    FileExists  在程序里面找不到
    PathFileExits  编译连接的时候会出错请问这两个方法怎么用啊?是不是还要导入某个dll文件呀?
      

  9.   


    FileExists不是WIN32 SDK的函数,可以查MSDN
    LZ,SDK没有这么方便的方法。
      

  10.   

    楼主,自己封一个函数用来判断文件是否存在不就行了
    另外
    CFileFind fd;
    bool bFind = false;
    bFind = fd.FindFile(strFileName,0);