【问题标题】:How to remove folder where the executable is如何删除可执行文件所在的文件夹
【发布时间】:2015-04-27 15:50:31
【问题描述】:

我创建了一个简单的卸载例程,在临时文件夹中制作了一些外部 bat,该文件夹从应用程序启动,bat 删除目录(安装应用程序的位置)中的所有文件。现在我从文件夹中删除所有文件(包括应用程序本身)时遇到问题,我无法删除文件夹。

这是蝙蝠的代码

ofstream batch;
batch.open(TempPath.c_str(), ios::out);
batch << "timeout 2" << "\n";
batch << "RD /S /Q \"C:\\Program Files\\Application\" /q\n";
batch << "timeout 5" << "\n";
batch << "rmdir \"C:\\Program Files\\Application\"";
batch.close();

现在的问题是如何在删除所有文件后删除文件夹?

【问题讨论】:

  • 您在尝试删除文件夹时是否收到错误消息?权限问题?正在使用中?
  • 当我从 cmd 尝试时,它说访问被拒绝
  • 很有趣,但我觉得很难。您需要将卸载程序 EXE 复制到临时目录并运行它。根据您的应用程序的安装位置,您可能需要以管理权限运行它。为什么要滚动自己的安装程序/卸载程序? WIX 是免费且有用的。 wixtoolset.org
  • 您是否使用了错误的标签?这看起来是 C++,而不是 C#?
  • @RonBeyer -> 对安装程序和卸载程序有一些特殊要求,这就是为什么我不使用其他一些设置

标签: c++ directory uninstallation


【解决方案1】:

你应该试试

batch << "RD /S /Q \"C:\\Program Files\\Application\" /s /q\n";

/s : 移除指定目录及所有子目录 包括任何文件。使用 /s 删除一棵树。

还要确保批处理脚本具有管理员权限,否则操作系统将拒绝它更改位于 C:\Program Files\ 中的文件

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 2012-12-15
    • 2013-12-15
    相关资源
    最近更新 更多