【问题标题】:Delphi create a InifileDelphi 创建一个 Inifile
【发布时间】:2015-09-19 22:09:29
【问题描述】:

我想在 Delphi 中创建/编写一个 inifile,但它不起作用。 要编写/创建一个inifile,我使用这个脚本:

ini := TIniFile.Create('Test.ini');
try
ini.WriteInteger('Test', 'Port', 33645);
ini.WriteBool('Test', 'ListenOnStart', true);
ini.WriteBool('Test', 'UpdateCheck', true);
ini.UpdateFile;
finaly
ini.free;
end;

我收到错误“无法写入 Test.ini。”,当我以管理员身份执行它时,我没有收到此错误,但它仍然无法正常工作。

【问题讨论】:

  • 我建议改写问题并删除所有不相关的内容(ini文件和代码)

标签: delphi ini


【解决方案1】:

您没有指定 ini 文件的完整路径,因此程序将尝试将其保存在您的应用无权写入的 Windows 目录中。通过指定 ini 文件的完整路径来解决您的问题。但请使用您的应用实际拥有写入权限的完整路径,例如用户个人资料中的子文件夹,例如 MyDocuments 或 AppData。

由于程序以标准用户身份失败并出现拒绝访问错误,但以管理员用户身份成功,您似乎实际上已将文件保存到 Windows 目录。在那里查找您的流浪 ini 文件。您几乎肯定会想从系统中删除它。

【讨论】:

  • 谢谢我现在使用 ini := Tinifile.Create(ChangeFileExt(Application.ExeName,'.ini'));
  • 你需要整理一下你可能误入系统目录的杂散文件。
  • @jwz:您的 EXE 可能位于程序文件文件夹中,您通常没有写入权限。因此,操作系统会将您的 INI 文件放在“虚拟存储”文件夹中。如果您使用漫游应用程序数据文件夹来存储您的 INI 文件,那就更好了。 (当然,如果您的应用程序是可移植的,则这些说明不适用。)
  • @AndreasRejbrand 如果它进入虚拟商店,那么程序作为标准用户不会失败。所以看起来用户有一个清单,所以没有虚拟化。我认为 windows 目录更有可能是因为它似乎可以很好地保存到可执行目录中。哪个最有可能是可写的,因为它将位于开发树下。
  • @David:是的,我明白这一点。我的评论更针对Tinifile.Create(ChangeFileExt(Application.ExeName,'.ini')); 建议(以及最终用户系统上EXE 的最终位置)。
猜你喜欢
  • 2011-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-23
相关资源
最近更新 更多