如何使用Delphi获取INI文件的绝对路径?

时间:2015-11-30 09:41:45

标签: delphi winapi ini

如果我使用这个Delphi代码

with TIniFile.Create('myapp.ini') do
try
  WriteString('SETTINGS', 'key', 'value');
finally
  Free;
end;

在默认文件夹中创建一个INI文件,有没有办法检索Windows用来创建文件的绝对路径?

1 个答案:

答案 0 :(得分:0)

在后台,TInifile.WriteString使用WritePrivateProfileString功能。

来自文档(强调我的):

BOOL WINAPI WritePrivateProfileString(   _In_ LPCTSTR lpAppName,  
    _In_ LPCTSTR lpKeyName,   _In_ LPCTSTR lpString,   
    _In_ LPCTSTR lpFileName );
     

lpAppName [in]

     

要将字符串复制到的部分的名称。如果   部分不存在,它被创建。该部分的名称是   情况下,独立的;字符串可以是大写和。的任意组合   小写字母。

     

lpKeyName [in]要关联的键的名称   用一根绳子。如果指定的部分中不存在该键,则为   被建造。如果此参数为NULL,则包括整个部分   该部分中的所有条目都将被删除。

     

lpString [in]要写入文件的以空字符结尾的字符串。如果   此参数为NULL,即lpKeyName参数指向的键   被删除。

     

lpFileName [in]初始化文件的名称。如果文件是   该函数使用Unicode字符创建,编写Unicode   字符到文件。否则,该函数写入ANSI   字符。

     

如果lpFileName参数不包含文件的完整路径和文件名,WritePrivateProfileString将搜索Windows   该文件的目录。如果该文件不存在,则此功能   在Windows目录中创建文件。

最后一条评论意味着您的程序必须以管理员身份运行。逻辑后果是,如果您的程序不是以管理员身份运行,则默认路径为C:\Users\Windows username\AppData\Local\VirtualStore\Windows。 因此,要遵守现代Windows规则,最好为ini文件提供完整路径...