【问题标题】:Creating A Folder In the Temp Folder在临时文件夹中创建文件夹
【发布时间】:2018-08-16 13:21:02
【问题描述】:

我正在尝试在临时文件夹中创建一个没有随机名称的文件夹。

这是我尝试在临时文件夹中创建文件夹的方式。

if not DirExists(ExpandConstant('{%tmp}\Utilities\SDK')) then
    CreateDir(ExpandConstant('{%tmp}\Utilities\SDK'));
    Log('Temp\Utilities\SDK Folder Has Been Created.');

我查看了this 线程,但不幸的是,即使使用%,它仍然没有创建文件夹。

脚本按预期编译和运行,但是文件夹没有'即使它说它在日志文件中也不要创建,

我知道日志文件会这样说,因为它也被告知,但是,如果无法创建文件夹,它不会崩溃吗?或者如果存在 if 语句则返回 false?

【问题讨论】:

    标签: inno-setup pascalscript


    【解决方案1】:

    使用CreateDir(),您必须一个接一个地创建目录,而不是一次创建目录结构。

    if not DirExists(ExpandConstant('{tmp}\Utilities')) then
      CreateDir(ExpandConstant('{tmp}\Utilities'));
    if not DirExists(ExpandConstant('{tmp}\Utilities\SDK')) then
      CreateDir(ExpandConstant('{tmp}\Utilities\SDK'));
    
    if DirExists(ExpandConstant('{tmp}\Utilities\SDK')) then
       Log('Temp\Utilities\SDK Folder Has Been Created.') else
       Log('Temp\Utilities\SDK Folder ERROR : NOT Created.');
    

    Inno Setup 具有一次创建目录结构的功能
    function ForceDirectories(Dir: string): Boolean;

    示例:

    if not DirExists(ExpandConstant('{tmp}\Utilities\SDK')) then
       ForceDirectories(ExpandConstant('{tmp}\Utilities\SDK'));
    

    还要记住:

    • {tmp} all 与 Inno Setup Temp 文件夹相关is-XXXXX.tmp
      C:\Users\...\AppData\Local\Temp\is-XXXXX.tmp
    • {%temp} 是用户临时文件夹
      C:\Users\...\AppData\Local\Temp

    【讨论】:

      【解决方案2】:

      我认为您需要 Windows Temp 而不是 InnoSetup 中的 tmp

      {tmp}: 安装程序或卸载程序使用的临时目录。这不是用户的 TEMP 环境变量的值。它是由安装程序或卸载程序在启动时创建的用户临时目录的子目录(名称类似于“C:\WINDOWS\TEMP\IS-xxxxx.tmp”)。 当安装程序或卸载程序退出时,此目录中的所有文件和子目录都将被删除。 在安装程序期间,这主要用于提取要在 [运行] 部分执行但在运行后不需要的文件安装。

      所以我认为你想这样做:

      if not DirExists(ExpandConstant('{%temp}\Utilities\SDK')) then
         CreateDir(ExpandConstant('{%temp}\Utilities\SDK'));
         Log('Temp\Utilities\SDK Folder Has Been Created.');
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-06-30
        • 1970-01-01
        • 2011-04-24
        • 1970-01-01
        • 2018-02-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多