android - Delphi部署与Android文件存储

标签 android delphi delphi-xe7

如果我尝试将文件部署到部署 assets\internal\assets.zipassets.zip,如下所示: enter image description here

我已经尝试了各种路径来查看是否可以找到 Assets 文件夹或我的 zip 文件。所有下面的代码都没有成功

  S1 := TPath.GetHomePath + PathDelim;
  S2 := FAppDataDirPathRoot + Application.Title + '.app' + PathDelim;
  S3 := TPath.GetLibraryPath + PathDelim;
  S4 := TPath.GetDocumentsPath + PathDelim;

  if (DirectoryExists(S1)) then // '/data/data/com.embarcadero.xxx/files/': yes:
    msAppNoOp
  ;
  if (DirectoryExists(S2)) then // ...: no, leftover test from iOS
    msAppNoOp
  ;
  if (DirectoryExists(S3)) then // '/data/app-lib/com.embarcadero.xxx-2/': yes
    msAppNoOp
  ;
  if (DirectoryExists(S4)) then // '/data/data/com.embarcadero.xxx/files/' yes
    msAppNoOp
  ;

  if (DirectoryExists(S1 + 'assets' + PathDelim)) then // no
    msAppNoOp
  ;
  if (DirectoryExists(S2 + 'assets' + PathDelim)) then // no
    msAppNoOp
  ;
  if (DirectoryExists(S3 + 'assets' + PathDelim)) then // no
    msAppNoOp
  ;
  if (DirectoryExists(S4 + 'assets' + PathDelim)) then // no
    msAppNoOp
  ;

  S1 := S1 + 'assets.zip';
  S2 := S2 + 'assets.zip';
  S3 := S3 + 'assets.zip';
  S4 := S4 + 'assets.zip';


  if (FileExists(S1)) then // no
    msAppNoOp
  ;
  if (FileExists(S2)) then // no
    msAppNoOp
  ;
  if (FileExists(S3)) then // no
    msAppNoOp
  ;
  if (FileExists(S4)) then // no
    msAppNoOp
  ;

在 Windows 资源管理器中浏览我的手机时,我看不到数据/数据/...,我认为这只有获得 root 权限的手机才有可能...

最佳答案

根据 documentation ,如果你部署到assets/internal那么你需要使用TPath.GetDocumentsPath来获取运行时部署文件所在的文件夹。尝试使用 TPath.Combine() 而不是直接使用 PathDelim:

S4 := TPath.Combine(TPath.GetDocumentsPath, 'assets.zip');
if (FileExists(S4)) then

关于android - Delphi部署与Android文件存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27610951/

相关文章:

java - MediaStore.Images.Thumbnails.getThumbnail 返回错误的缩略图而不是 NULL

delphi - 如何清洗/验证字符串以将其分配给组件名称?

android - onActivityResult 等同于 Delphi XE5?

delphi - SearchBuf soWholeWord 意外输出

delphi - 如何检查样式文件是否已加载?

java - android camera : Failure delivering result ResultInfo{who=null, request=0, result=-1, data=null} 到 Activity

android - 如何在 Android 中创建评分栏?

android - 我需要将 AIDL 文件放在哪里?

德尔福XE2 : Use msbuild to build a project in command line prompt error MSB4067

delphi - 我的自定义控件闪烁。是什么原因造成的以及如何消除它?