这是我写入ini文件的代码.
Ini := TIniFile.Create(ChangeFileExt('StudentALevelMathsTracker.exe','.ini')) ;
try
Ini.WriteString('Settings', 'FilePath', edtFilePath.text);
Ini.UpdateFile;
finally
Ini.Free;
end;
Run Code Online (Sandbox Code Playgroud)
但是,当我运行这个时,我得到一个错误说
项目ALevelMathsTracker.exe引发了异常类EIniFileException,并显示消息"无法写入studentALevelMathsTracker.ini"
这是我在网络上的问题还是我的代码?
TIniFile 是PrivateProfile API的瘦包装器.
如果未指定完整路径,则API会创建相对于OS系统文件夹的.ini文件,该文件夹可能没有写入权限.
如果您将文件名设置为Application.ExeName或ParamStr(0),则表示您正在创建相对于应用程序文件夹的.ini文件,该文件夹可能没有写入权限,尤其是在安装了应用程序的情况下Program Files.
你应该做的是使用SHGetFolderPath(CSIDL_APPDATA)或类似的API来获取用户的AppData文件夹的路径,在其下创建自己的子文件夹,然后在该子文件夹中创建.ini文件.