我正在尝试在temp文件夹中创建一个没有随机名称的文件夹。
这是我尝试在temp文件夹中创建文件夹的方式。
if not DirExists(ExpandConstant('{%tmp}\Utilities\SDK')) then
CreateDir(ExpandConstant('{%tmp}\Utilities\SDK'));
Log('Temp\Utilities\SDK Folder Has Been Created.');
我看了this线程,但是不幸的是,即使使用
%
,它仍然不会创建文件夹。脚本会按预期编译并运行,但是即使文件夹说它已经创建,也不会创建在日志文件中,我知道该日志文件会说,因为它也被告知,但是,如果无法创建该文件夹,它会崩溃吗?或如果存在if语句,则返回false? 最佳答案
使用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}全部与Inno Setup Temp文件夹is-XXXXX.tmp有关。
C:\ Users \ ... \ AppData \ Local \ Temp \ is-XXXXX.tmp
{%temp}是用户的Temp文件夹
C:\ Users \ ... \ AppData \ Local \ Temp