我在一段程序中用CFile.open()打开了一个文件,用两个CString类对象分别获得了该文件
当前的全路径字串和改名后的全路径字串,然后用CFile.rename()改名,参数就是那两个全路径字串。但程序运行时,会弹出错误对话框,提示“在读取一未命名文件时发生共享违例”。实在想不出是什么原因,哪位能给个提示,这里先谢过了。存放当前的全路径字串的变量中的值是"D:\test\txt01.txt",存放改名后的全路径字串的变量中的值是"D:\test\txt001.txt"。

解决方案 »

  1.   

    不打开文件直接CFile::Rename( pOldName, pNewName )试试
      

  2.   

    打开文件就不可以改名了,因为读状态下不容许修改文件的呀
    楼上说的对。如果已经打开了,可以调用close关掉,然后在改名
      

  3.   

    文件打开的时候是不允许修改文件名的, 用api  MoveFile试一下.
      

  4.   

    CFile Rename 是 static 的, 所以可以直接使用CFile::Rename("D:\\test\\txt01.txt", "D:\\test\\test001.txt");or user API
    ::MoveFile("D:\\test\\txt01.txt", "D:\\test\\test001.txt");
      

  5.   

    ::rename("D:\\test\\txt01.txt", "D:\\test\\test001.txt");
      

  6.   

    打开文件就不可以改名了,因为读状态下不容许修改文件的呀
    楼上说的对。如果已经打开了,可以调用close关掉,然后在改名
      

  7.   

    打开文件就不可以改名了,因为读状态下不容许修改文件的呀如果已经打开了,可以调用close关掉,然后在改名