应用程序如何在c++中删除自己和包含它的文件夹
How an application can delete itself and its containing folder in C++?
我正在创建一个卸载程序,它将删除一些文件和它自己。它还需要删除它所在的文件夹。我正在开发仅适用于Windows的c++卸载程序。
我已经找到了删除文件夹和文件的方法,但我无法找到删除应用程序本身并删除包含它的文件夹的方法。
谁能指导我怎么才能做到这一点??
谢谢
您有两个选择:
1)运行一个单独的进程/批处理,在你的应用程序停止运行后删除你的文件/文件夹。应用程序可以在退出前运行该进程。
2)使用Win32 API MoveFileEx()
函数标记下次重启PC时要删除的文件/文件夹
你不能那样做…当您试图删除进程的.exe
时,会被拒绝访问,因为您正在运行这个特定的.exe
。您需要首先停止您的进程,然后删除您的.exe
,但是如果该进程不运行,它就不能做您想要它做的事情->删除您的所有文件。您需要创建一个额外的进程,可能是一个批处理作业来删除您的文件。
相关文章:
- Visual C++GC接口如何启用它以及要包含哪个库
- 这个C++编译器优化(在自身的实例上调用对象自己的构造函数)的名称是什么,它是如何工作的?
- 派生类是从基类继承 v 指针并仅使用它,还是也有自己的 v 指针?
- 如何正确包含我自己的标头?
- 包含它的模板化类型的shared_ptr
- 当包含头文件的文件不在根项目文件夹中时,如何包含它
- 对象文件中的未定义引用 - 如何查找哪个库包含它
- .c文件应该包含它的.h文件已经包含的内容吗?
- 当包含它的对象调用其析构函数时,unique_ptr是否未分配
- 运算符 类对象的重载在访问包含它的向量元素时不起作用
- 当我包含它的标头时,为什么我的代码中会出现"use of undefined type"错误?
- 如何在不将glew32.dll放入系统根目录的情况下包含它
- Ceil函数:我们如何自己实现它
- C++,对函数的未定义引用,尽管包含它的标头
- 应用程序如何在c++中删除自己和包含它的文件夹
- 在它自己的源文件中包含头文件
- 为什么在.cpp文件中包含 <string.h>会导致编译错误(而包含它 .h 文件是可以的)
- C++中的相互包含.它是如何工作的
- 使用swap()而不包含它的库
- 当使用复制构造函数为包含它的变量分配一个新对象时,上一个对象是否已销毁