d:\test\DeleteCurDir.exeDeleteCurDir.exe是删除当前目录。要怎样做才能成功呢?

解决方案 »

  1.   

    用remove函数:
    remove("d:\\test\\DeleteCurDir.exe");
      

  2.   

    http://www.itqun.net/content-detail/83671.html
      

  3.   

    remove
    DeleteFile
    SHFileOperation
      

  4.   

    // 看来先得把DeleteCurDir.exe拷贝出来再运行?
      

  5.   

    先删除当前目录下除自己外的其他所有文件和目录,然后生成一个批处理,不停检测d:\test\DeleteCurDir.exe是否存在,若存在则尝试删除,完了继续检测是否存在,若不存在则结束。生成该批处理文件之后,DeleteCurDir.exe再退出进程。于是就会被批处理删掉了。同理也可以删除该目录了。
      

  6.   

    这个函数一定会失败,因为DeleteCurDir正在运行
      

  7.   

    用SHFileOperation()函数,系统会删除这个文件。
      

  8.   

    这个问题我在做安装包时遇到过,
    安装包需要在安装之后再开始菜单里创建一个卸载的快捷方式,这个快捷方式指向一个exe,这个exe就在安装目录下,运行卸载之后需要将整个安装目录都删除。开始时遇到了这个问题,因为这个exe在运行所以当前的目录其他的文件都可以删除,唯独这个exe本身没法删除。后来发现VS2008打包时为快捷方式指向的exe提供了一个参数:WorkingFolder,即为其指定工作文件夹。好了,现在安装后假定Uninstall.exe在C:\软件\Uninstall.exe下,但是给其指定的工作文件夹为
    "C:\Documents and Settings\user\桌面\"。这样设置之后再卸载就没问题了。现在上面的问题是不是也可以这样做呢?上面的这个工作文件夹是什么原理呢?
      

  9.   


    碰到这样的问题,我一般都是首先写一个批处理文件,如:del DeleteCurDir.exe
    在程序退出的时候调用一下。
    批处理删除文件的时候,该程序已经不再运行,即使不能del,他也会等待一段时间,所以屡试不爽。
      

  10.   

    LS的方法一定能解决这个问题,我想知道另外一些东西,如14L所述……
      

  11.   

    只晓得一种方法写一个批处理,删除exe和本身
      

  12.   

    CFile::Remove()函数不能删除目录,MFC提供CFileFind类用于枚举目录中的子文件,使用这个类的功能枚举出目录中的所有文件并删除,在使用RemoveDirectory()删除空目录即可