gpt4 book ai didi

directory - 如何在inno setup中删除非空文件夹

转载 作者:行者123 更新时间:2023-12-02 23:10:00 26 4
gpt4 key购买 nike

我使用 Inno Setup 创建了一个安装程序,其中包含 5 个文件。我添加了一项附加功能,以便用户可以将其安装在自定义路径中。

安装后,将在选定的路径中创建一个文件夹。现在我将复制该文件夹中的一些其他文件。但卸载后出现以下情况:

  1. 让用户将其安装在默认位置,然后在该位置创建一个新文件夹 myfolder,现在用户创建 2 个新文件并将它们复制到该文件夹​​中。卸载后没有问题; myfolder 将与 2 个新文件(安装后创建)一起被删除。

  2. 现在让用户将其安装在自定义位置,然后在该位置创建一个新文件夹(例如 myfolder),现在用户创建 2 个新文件并将它们复制到该文件夹​​中。卸载后,myfolder 不会删除,因为其中有 2 个新文件(安装后创建)。

这是我的代码:

function GetInstalledLocation(): String;
var
installLocation: String;
begin
if RegKeyExists(HKEY_LOCAL_MACHINE,'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ {36CBFC-6ACC-4232-90CF-E95BC473C168}_is1') then
begin
RegQueryStringValue(HKEY_LOCAL_MACHINE,'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{1536CBFC-6ACC-4232-90CF-E95BC473C168}_is1', 'InstallLocation', installLocation);
Result := installLocation
end;
end;



function InitializeUninstall(): Boolean;
var
InstalledLocation : String;
begin
Result := PromptUntilProgramClosedOrInstallationCanceled( ProgramRunningOnUninstallMessage, True );

// Unload the DLL, otherwise the dll psvince is not deleted
UnloadDLL(ExpandConstant('{app}\psvince.dll'));

if not Result then
begin
MsgBox( UninstallationCanceledMessage, mbInformation, MB_OK );
end
else
begin
InstalledLocation := GetInstalledLocation();
;DelTree('{InstalledLocation\*}', True, True, True);
DelTree('{InstalledLocation}', True, True, True);
; DelTree('ExpandConstant({InstalledLocation\*})', True, True, True);
end;
end;

[UninstallDelete]
;This works only if it is installed in default location
Type: filesandordirs; Name: "{pf}\{#MyAppName}"

但我想删除该文件夹以及新文件,即我想删除 inno setup 中的非空文件夹。我该怎么做?

最佳答案

现在它可以工作了,我使用了以下代码:

[UninstallDelete]
;This works only if it is installed in default location
Type: filesandordirs; Name: "{pf}\{#MyAppName}"


;This works if it is installed in custom location
Type: files; Name: "{app}\*";
Type: filesandordirs; Name: "{app}"

关于directory - 如何在inno setup中删除非空文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24865343/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com