【发布时间】:2016-03-03 21:44:43
【问题描述】:
如果我使用这个 Delphi 代码
with TIniFile.Create('myapp.ini') do
try
WriteString('SETTINGS', 'key', 'value');
finally
Free;
end;
要在默认文件夹中创建 INI 文件,有没有办法检索 Windows 用来创建文件的绝对路径?
【问题讨论】:
-
为什么不将默认路径设置为与应用程序路径相同?例如,使用
TIniFile.Create(changefilext(paramstr(0),'.ini'))会将您的 ini 文件与可执行文件放在同一文件夹中。 -
@theodorusap 并打破有关 UAC 的所有规则?
-
你肯定做错了。您确实必须停止将文件放在 Windows 目录中,或者停止依赖虚拟化。事实上,你真的应该停止使用早已弃用的 Win16 回兼容 API。不要问完整路径是什么,提供完整路径。并切换到
TMemIniFile。 -
@DavidHeffernan 是的,这个问题只出现在遗留应用程序迁移期间。几乎所有地方的 INI 文件都是使用特定设置文件夹的完整路径创建的,因此解决方案是修复它使用问题中显示的代码的单个位置。
-
你真的应该停止使用
TIniFile。文档说:提供此功能仅是为了与 16 位版本的 Windows 兼容。