问大家个问题~先只是大概猜测下是什么原因造成的?
传送文件,接收方用另存为的方式保存文件,文件保存在某个文件夹下,接受完毕后,收到的文件可以重命名,但是该文件所在的文件夹不能重命名。
接着,再次接受文件,换个路径保存,接受完毕后,保存之前文件的文件夹可以重命名了,但是本次的文件夹不能重命名。
程序退出,最后一次保存路径的文件夹也可以重名了
原因肯定是资源没释放。
但是这个资源是哪里的没释放呢?
另存为对话框是用CFileDialog

解决方案 »

  1.   

    CFileDialog如果没关闭,会占用文件夹。文件如果被占用,很可能是程序的问题。
      

  2.   

    补充补充补充补充补充补充补充补充补充补充补充补充补充补充补充补充补充补充补充补充
    ================================================================================
    举例:
    现在假设进程在e:\MyApp下
    收到a.txt保存在c:\temp下,此时temp这个文件夹不能重命名
    再收到a.txt保存在d:\temp下,此时c:\temp的temp文件夹可以修改了
    但是d:\temp的temp不能修改了
    另存为这个对话框是用CFileDialog  DoModal的
      

  3.   

    您指的没关闭是要怎么操作?DoModal之后需要再做什么?如果不是IDCANCEL就保存了
      

  4.   


    注意注意注意注意注意注意注意注意注意注意注意注意注意注意注意不管c盘还是d盘,我都没有打开 a.txt
    这个temp文件夹或者temp下收到的文件都没在被使用
      

  5.   

    不管c盘还是d盘,我都没有打开 a.txt
    这个temp文件夹或者temp下收到的文件都没在被使用
      

  6.   

    打开对话框前加入以下语句可解决:dlg.m_ofn.Flags |= OFN_NOCHANGEDIR;