【问题标题】:Delphi - Deploying and accessing local files on AndroidDelphi - 在 Android 上部署和访问本地文件
【发布时间】:2017-02-16 09:59:07
【问题描述】:

当我运行 Android 应用程序时,它运行良好。当我更改一些数据并单击“保存更改”按钮时出现问题。然后再次运行显示旧数据的应用程序。

我需要我的应用程序加载我保存的一个。

我使用的是 Delphi Xe8->Multi-Device App。

对于 Android,我将远程路径设置为 assets\internal -->.\assets\internal\

保存更改按钮代码:

procedure TForm1.Button1Click(Sender: TObject);
begin
CDS.SaveToFile(TPath.GetDocumentsPath + PathDelim + 'users.cds');
end;

OnCreate 代码:

procedure TForm1.FormCreate(Sender: TObject);
begin
CDS.LoadFromFile(TPath.GetDocumentsPath + PathDelim + 'users.cds'); //Embarcadero\Studio\Projects\example\Client\Android\Debug\Client\assets\internal
end;

【问题讨论】:

  • 您是否尝试在表单(或调试器)上显示表达式TPath.GetDocumentsPath + PathDelim + 'users.cds' 的值并确认它在FormCreateButton1Click 中是相同的?
  • 是的,它们是相同的[FormCreate 和 ButtonClick]。
  • 好吧,CDS 的 SaveToFile 和 LoadFromFile 正常工作没有任何问题,但我只在 Windows 下使用过它们。也许您的问题是特定于 Android 的,与用户权限或其他问题有关。您可以将 TMemo 的内容保存到同一个文件夹并重新加载并保存对它的更改等吗?
  • 顺便说一句,你可以看看这个 q:stackoverflow.com/questions/18857936/…,尤其是 Leslie Kaye 的回答。
  • 我放了 Memo1.lines.add(TPath.Combine(TPath.GetDocumentsPath, 'users.cds'))。我得到了这个路径:/data/data/com.embarcadero.Client/files/users.cds

标签: android delphi


【解决方案1】:
AppPath := TPath.GetHomePath;
FileName := TPath.Combine(AppPath, 'users.cds');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多