【发布时间】:2014-02-18 14:48:01
【问题描述】:
我已经写了一些代码:
MnemonicList := TStringList.Create();
{$IFDEF Android}
IniPath := TPath.Combine(TPath.GetDocumentsPath, ADefaultLanguage + '.ini'); { Internal }
{$ENDIF}
{$IFDEF Win32}
IniPath := TPath.Combine(ExtractFilePath(ParamStr(0)), 'Lang\' + ADefaultLanguage + '.ini');
{$ENDIF}
if FileExists(IniPath) then
begin
MemIniFile := TMemIniFile.Create(IniPath);
ShowMessage(IniPath);
MemIniFile.ReadSections(MnemonicList);
ShowMessage(IntToStr(MnemonicList.Count));
end;
第二个 ShowMessage() 在 Windows 上运行时结果为 4,在 Android 上运行时结果为 0...文件已正确填充,并且 FileExists(IniPath) 在 Android 上也为 True。我也可以在编辑器中打开 Android 和 Windows 上的文件。 Android 上的 TMemIniFile 有什么不同吗?
【问题讨论】:
-
仅凭您发布的内容很难说,但是您确定在 Android 上填充了 INI 文件吗?请记住,每次将应用程序部署到设备时,存储都会被清除干净。另外,你是如何得到你的路径的?在 Android 上应该是这样的
TPath.GetDocumentsPath + PathDelim + 'mysettings.ini' -
是的,没关系。文件在文件系统中...我现在编辑了问题。
-
您的路径设置对我来说看起来不错。我在 Android 上的一个项目中使用 TMemINIFile,我没有遇到任何问题。您可以尝试创建一个单独的项目,然后尝试一个非常简单的读/写命令。
-
IniPath is '/data/data/
/files/pl.ini' 我无法使用文件管理器到达那里,但 FileExists 结果为 True -
如果您尝试读取单个值而不是部分会发生什么?不知道为什么会有所不同,但我没有 ReadSections。
标签: android windows delphi firemonkey delphi-xe5