应用程序如何在c++中删除自己和包含它的文件夹

How an application can delete itself and its containing folder in C++?

本文关键字:自己 包含它 文件夹 删除 c++ 应用程序      更新时间:2023-10-16

我正在创建一个卸载程序,它将删除一些文件和它自己。它还需要删除它所在的文件夹。我正在开发仅适用于Windows的c++卸载程序。

我已经找到了删除文件夹和文件的方法,但我无法找到删除应用程序本身并删除包含它的文件夹的方法。

谁能指导我怎么才能做到这一点??

谢谢

您有两个选择:

1)运行一个单独的进程/批处理,在你的应用程序停止运行后删除你的文件/文件夹。应用程序可以在退出前运行该进程。

2)使用Win32 API MoveFileEx()函数标记下次重启PC时要删除的文件/文件夹

你不能那样做…当您试图删除进程的.exe时,会被拒绝访问,因为您正在运行这个特定的.exe。您需要首先停止您的进程,然后删除您的.exe,但是如果该进程不运行,它就不能做您想要它做的事情->删除您的所有文件。您需要创建一个额外的进程,可能是一个批处理作业来删除您的文件。