f.LoadFromfile和f.SaveToFile上的相对路径

时间:2016-06-13 11:24:03

标签: delphi tstringlist

在这些功能上使用相关路径的正确方法是什么?尝试了一些,但只有绝对路径工作正常。这是一些代码示例,用于说明。谢谢!

Procedure test;
Var
f : TStringList;
trash: Cardinal;
TempTime,SumTime : Cardinal;
TimeInterno : TDateTime;
begin
  f := TStringList.Create;
  f.LoadFromfile('D:\test\Ignores.txt');
  for Loop := 0 to f.Count-1 do
  begin
    Ignore(f.Strings[Loop].tointeger);
  end;
  f.Free;
   FindType(-1,trash);

            TimeInterno := Now;
            f := TStringList.Create;
            if not FileExists('D:\test\Ignores.txt') then
            begin
              f.SaveToFile('D:\test\Ignores.txt');
            end;
            Wait(100);
            if FileExists('D:\test\Ignores.txt') then
            begin
              f.SaveToFile('D:\test\Ignores.txt');
              Wait(100);
              f.LoadFromfile('D:\test\Ignores.txt');
            end;
            f.add(IntToStr(findType(-1,Ground)));
            f.SaveToFile('D:\test\Ignores.txt');
            f.Free;
            Ignore(trash);
            Wait(200);
            trash := FindType(-1,Ground);
            UseObject(trash);

1 个答案:

答案 0 :(得分:1)

相对路径应该可以正常工作,但要确保你所假设的相对路径是正常的。它应该与当前工作目录相关,该目录并不总是与.exe目录相同。

在大多数平台上,您可以通过添加exe目录的相对路径来解决此问题,例如

sExePath := ExtractFilePath(paramstr(0));

然后使用

 appendtrailingpathdelimiter(sexepath)+yourrelativepathvarorexpression;