是这样的,我在程序使用
CFile(name,CFile::modeCreate|CFile::modeWrite |CFile::modeNoTruncate)
创建一个文件并写入数据,为什么在程序退出近3分钟的时间内这个文件都不可以被其他程序(如:记事本本)访问呢,写入的数据量并不大,我使用的是win2000,这个和文件系统有关系么?如解决本问题,坚决给分,马上结贴,同时可能还有另一问题求教
谢谢!

解决方案 »

  1.   

    CFile file;
    if(file.Open(name,CFile::modeCreate | CFile::modeWrite | CFile::modeNoTruncate))
    {
        file.Write(...);
        file.Close();
    }
      

  2.   

    谢谢两位的帮助!to  bohut(伯虎):
        CFile::modeReadWrite 可以 和CFile::modeNoTruncate 一起使用么?我还是需要NoTruncate的。to lanstar200(玛雅哥布林:)    我在程序退出时确实已经close了,不知道为什么还有那么长的时间延迟。
      

  3.   

    to  bohut(伯虎):
        我用CFile::modeReadWrite 标志位试了试,不行,用notepad打开时:can not open the file.用ultraEdit打开解释是:访问时发生共用违规。
      

  4.   

    to w100(志)
          How??我想CFile::close()内已封装了关闭文件句柄的操作了。
      

  5.   

    CFile::asyshare...记得不太清楚了..
    就是可以共享使用文件的标志.具体请查MSDN
      

  6.   

    你只用 modeReadWrite 然后CLOSE,再用记事本也打不开吗? 不应该啊,是不是你别的地方不对
      

  7.   

    CFile::ShareDenyNone
    CFile::ShareDenyRead
    CFile::ShareDenyWrite
    以上这些是设置共享类型的。可以和上面的NoTruncate,ReadWrite等等合用。
      

  8.   

    file.Flush();
    file.close();
    试试 
      

  9.   

    CFile  f;
    if(!f.Open(filename, CFile::modeCreate|CFile::modeNoTruncate|CFile::modeWrite))
       AfxMessageBox("创建文件失败");//文件写入操作
    ..............f.Close();试试
      

  10.   

    谢谢诸位的帮忙,问题已解决了,主要原因应该是如  memory_xj(青蛙) 兄所说,缺少一个flush 操作。