首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在inno安装程序中删除非空文件夹

如何在inno安装程序中删除非空文件夹
EN

Stack Overflow用户
提问于 2014-07-21 12:40:48
回答 1查看 9K关注 0票数 7

我已经使用Inno安装程序创建了一个安装程序,其中包含5个文件。我增加了一个额外的功能,以便用户可以在自定义路径中安装它。

安装后,将在选定的路径中创建文件夹。现在,我将在这个文件夹中复制其他一些文件。但是,在未安装之后,正在发生以下情况:

  1. 让用户将其安装在默认位置,然后一个新文件夹(假设在该位置创建了我的文件夹),现在用户创建2个新文件并在该文件夹中复制它们。卸载后没有问题;我的文件夹将与2个新文件一起删除(安装后创建)。
  2. 现在让用户将其安装在自定义位置,然后一个新文件夹(比如在该位置创建了我的文件夹),现在用户创建了2个新文件并将它们复制到这个文件夹中。卸载后,我的文件夹不会删除,因为其中有2个新文件(这些文件是安装后创建的)。

这是我的代码:

代码语言:javascript
复制
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}"

但我想删除文件夹连同新的文件,即我想删除非空文件夹在没有设置。我该怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-22 12:42:44

ya现在正在工作,我使用了以下代码:

代码语言:javascript
复制
[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}"
票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24865343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档