如何测试Inno Setup运行的文件夹中是否存在文件?

时间:2014-04-17 10:33:34

标签: inno-setup

如何确定某个文件是否存在于运行Setup.exe的同一位置?

即。像这样的东西:

if (FileExists(App.Path + '\config_file*.txt') = True) then

注意:我不想知道安装应用程序的文件夹,我想知道Setup.exe正在运行的文件夹(例如" C:\ Documents和设置\ Jennifer Cox") - 在Visual Basic中例如相当于App.Path。

2 个答案:

答案 0 :(得分:2)

您可以使用{src}获取安装程序本身的路径(文件名除外)。这在使用[Files]标记的external条目时最常用,但也可以在[Code]中使用,如下所示:

// procedure/function Whatever();
var
  S: String;
begin
  S := ExpandConstant('{src}\File.txt');
  // ...
end;

答案 1 :(得分:1)

要获取执行设置的路径,您需要从{srcexe}常量中提取它。要从文件中提取路径,您可以使用ExtractFilePath函数,因此将它们组合在一起就可以得到如下内容:

var
  S: string;
begin
  S := AddBackslash(ExtractFilePath(ExpandConstant('{srcexe}'))) + 'File.txt');
  if FileExists(S) then
    ...
end;