如何使用 Firemonkey 显示 Android 内存中的可用文件

2023-12-02

在 Delphi for Windows 中,有TOpenDialog和命令如FindFirst。 在 Firemonky/Android 中没有 TOpenDialog, but according to many forumsFindFirst` 应该存在。然而还有更多的人遇到了问题,但没有解决方案:

在 Windows 中,以下功能正常:

var iResult,n:integer;
Filenaam,s:string;
sr: TSearchRec;

begin

with form1 do
begin
    L_toonactie.Text:='start file list';
    M_filelist.lines.Clear;
    Filenaam:=
          System.IOUtils.tpath.GetDocumentsPath+'\assets\internal\'+'*.*';          
    iResult:=FindFirst(Filenaam,faAnyFile,sr); 
    str(iresult,s);L_toonactie.Text:='started '+s;
    n:=0;
    while (iResult=0) do
    begin
        inc(n);
        L_toonactie.Text:='busy file list';
        s:=s+sr.Name+sLineBreak;
        M_filelist.lines.add(sr.name);
        iResult:=FindNext(sr);
    end;
  FindClose(sr);
 // str(n,s);if n=0 then L_toonactie.Text:='nothing found' 
else L_toonactie.Text:='ready file list ('+s+'found)'

end;}

iResult总是有-1

找到的另一个解决方案是:

procedure toon_files2(pathSTRING:string);  
var
   {$IFDEF FPC}
   patharray : NSArray;
   filename,path,ext,subdir:NSString ;
   fileManager: NSFileManager ;
   direnum:NSEnumerator;//NSDirectoryEnumerator ;//NSDirectoryEnumerator;
   //direnum:NSDirectoryEnumerator ;//NSDirectoryEnumerator;
   i,n:integer;
   error:NSError;
   {$ENDIF}
   k:integer;
begin
form1.L_toonactie.Text:='start file list';

{$IFDEF FPC}
path:= NSSTR(PChar(pathSTRING)); // =NSHomeDirectory();//
fileManager:= NSFileManager.defaultManager;
patharray:= fileManager.contentsOfDirectoryAtPath_error(path,@error);
n:=0;
k:=0;
direnum:= patharray.objectEnumerator ;
repeat
    inc(k);
    filename:=direnum.nextObject;
    if string(fileName.UTF8STRING)<>'' then
    begin
        ext:= filename.pathExtension;
        if UpperCase(string(ext.UTF8STRING))='KPF' then
        begin
            form1.L_toonactie.Text:='found a file';
            SetLength(pngLIST,n+1);
            pngLIST[n]:=string(Path.UTF8STRING)+string(filename.UTF8STRING);
            form1.memo1.Lines.Add(pngLIST[n]) ;
            inc(n);
        end;
    end;
until string(fileName.UTF8STRING)='';
{$ENDIF}

if k=0 then form1.L_toonactie.Text:='nothing found' 
else form1.L_toonactie.Text:='ready file list';
end;

但也不起作用。


可用的功能IOUtils是你所需要的全部。此代码(在我的 Nexus 7 上测试)填充TMemo与您的文件夹中的文件(如果有):

uses
  IOUtils;

procedure THeaderFooterForm.SpeedButton1Click(Sender: TObject);
var
  DirList: TStringDynArray;
  DirPath: string;
  s: string;
begin
  DirPath := TPath.Combine(TPath.GetDocumentsPath, 'assets');
  DirPath := TPath.Combine(DirPath, 'internal');

  // Display where we're looking for the files
  Memo1.Lines.Add('Searching ' + DirPath);

  if TDirectory.Exists(DirPath, True) then
  begin
    // Get all files. Non-Windows systems don't typically care about
    // extensions, so we just use a single '*' as a mask.
    DirList := TDirectory.GetFiles(DirPath, '*');

    // If none found, show that in memo
    if Length(DirList) = 0 then
      Memo1.Lines.Add('No files found in ' + DirPath)
    else // Files found. List them.
    begin 
      for s in DirList do
        Memo1.Lines.Add(s);
    end;
  end
  else
    Memo1.Lines.Add('Directory ' + DirPath + ' does not exist.');
end;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Firemonkey 显示 Android 内存中的可用文件 的相关文章

  • 避免 XferMode 替换画布上的颜色

    我正在尝试替换使用在画布上绘制的内容的颜色避免Xfer模式 http developer android com reference android graphics AvoidXfermode html 从 android 文档来看 它看
  • 即使成功固定后,ParseQuery 在从本地数据存储查询时也给出 0 个对象

    我正在使用 parse com 的 Android SDK 并且遇到了一个特殊的问题 从片段的 onCreate 中 从服务器获取一个对象 Pin it 从本地数据存储中获取对象 以下是 onCreate 中的代码片段 ParseObjec
  • 自定义 ListView 和 onclick

    这是我的代码 一切 我按照你说的做了 但我仍然无法点击任何内容 我的意思是我可以点击但没有任何反应 package fixus core import java util ArrayList import java util Iterato
  • 在 Android 中使用 PhoneGap 打开 PDF

    我需要打开一个位于 url 中的 PDF 文件 我需要用 PDF 查看器打开它 有可能的 谢谢大家 此致 我建议使用儿童浏览器插件 https build phonegap com blog childbrowser plugin并使用 G
  • FirebaseAuth - 让用户使用任何提供商更改密码 - Android

    我有一个社交媒体应用程序 我正在使用FirebaseUI让用户使用电子邮件 Google 或 Facebook 登录 注册应用程序 如果使用 电子邮件 作为密码 我怎样才能让用户稍后更改他 她的密码 提供商 如果使用 Facebook 或
  • 从布局中添加和删除视图

    如何从布局中添加和删除视图 我是这样做的 ViewManager entry getParent removeView entry
  • Delphi 如何与 Active Directory 集成?

    我们需要使用 Delphi 7 验证 Microsoft Active Directory 上的用户 最好的方法是什么 我们可以有两种情况 用户输入其网络用户名和密码 其中用户名可能包括域 然后我们检查活动目录是否是有效的活动用户 或者我们
  • 语音识别和文本转语音

    我想开发一个实现语音识别的应用程序 然后使用文本到语音引擎实现文本到语音 我发布了下面的代码 我使用两个按钮和一个列表视图 一个按钮用于语音识别 另一个按钮用于文本转语音 列表视图用于两者 首先在列表视图中发布语音识别的结果 然后应用程序将
  • Android MapView v2 黑屏

    我一直在尝试实现 android 的 MapView v2 除了这个错误之外 我让它工作得很好 This is what it looks like when I load the app from scratch 如您所见 没有任何问题
  • SQLiteAssetHelper 甚至在从资产文件夹复制数据库之前就导致立即崩溃

    https github com jgilfelt android sqlite asset helper https github com jgilfelt android sqlite asset helper 我要从SQLiteOpe
  • 从最近打开的应用程序中打开 Android 中的旧活动?

    我有 4 个活动 Launcher MainActivity SingleTask NotificationActivity ExampleActivity 当用户点击通知时 通知活动然后打开示例活动并完成通知活动 当我按下回键时主要活动打
  • Android AsyncTask 第二次调用时未执行

    我有一个扩展 AsyncTask 的类 public class SendJSONArray2Server extends AsyncTask
  • ConstraintLayout 源代码位于哪里?

    哪里可以找到android的源代码ConstraintLayout 我在支持框架存储库甚至谷歌搜索中都找不到它 它的源代码在这里 https android googlesource com platform frameworks opt
  • 如何保存/加载 BigInteger 数组

    我想保存 加载BigInteger数组传入 传出 SharedPreferences 如何做呢 例如对于以下数组 private BigInteger dataCreatedTimes new BigInteger 20 Using Gso
  • 如何以编程方式将 Android 设备连接到“WPA2 PSK”安全 WiFi 热点网络?

    在我的 Android 应用程序中 我尝试将我的 Android 设备连接到 WPA2 PSK 安全连接 经过大量搜索后 我编写了以下代码 if securityMode equalsIgnoreCase WPA2 WPA2 wifiCon
  • 尝试在 android 中更新 sqlite 数据库时出错

    我的数据库正在运行 但我插入的所有记录都是为了检查目的 现在我想删除所有表并创建新表 所以我尝试通过更改版本来更新数据库 我没有对创建表查询进行任何更改 但外键约束失败 代码 787 这是我的DBHelper class private s
  • Android 位图到 WebRtc I420 帧损坏

    尝试通过 WebRtc 流式传输位图 我的 Capturer 类大约如下所示 public class BitmapCapturer implements VideoCapturer VideoSink private Capturer c
  • MediaPlayer() 音频口吃(android)

    我正在我的 Android 应用程序中使用 MediaPlayer 函数从远程服务器传输实时音频流 但音频断断续续且断断续续 问题不在于我的互联网 因为当我在计算机上播放时 提要播放得很好 可能是什么问题 注意 直播正在进行中 这是我正在使
  • 获取 Blob 图像并将该图像转换为 Bitmap 图像

    我正在从数据库中获取 blob 格式的图像 我想将其转换为位图图像 我用来将位图转换为 Blob 的代码放在下面 但是请告诉我如何反转它 ByteArrayOutputStream boas new ByteArrayOutputStrea
  • 从 SD 卡读取 pdf 文件

    我想阅读存储在 SD 卡中的 pdf 文件 我尝试使用此代码片段 File file new File Environment getExternalStorageDirectory vvveksperten ypc pdf Package

随机推荐

  • Objective C 方法签名可以指定枚举类型吗?

    VoiceName 是一个枚举 声明如下 enum VoiceName PAD RHYTHM PAD RHYTHM2 PAD RHYTHM3 PEEPERS ATMOSPHERE IMPULSE FAST PULSE HAIRYBALLS
  • Boost python 包装虚拟方法

    我正在使用 boost python 创建与 c 库的绑定 该库中的许多类都具有接受 iterator const iterator 类型作为参数的虚拟方法 我并不是特别想公开这些类型 但更愿意围绕这些虚拟方法创建一些包装器来接受适当的容器
  • webkit 上浮动 div 后“overflow:hidden”div 的边距行为

    我发现 float left div 后面的 overflow hidden div 的右侧边距加倍 可以使用以下代码进行测试
  • 如何获取 PyQt 中 QGroupbox 内存在的 Qcheckbox 的状态

    我的项目包含具有多个 QGroupbox 的 Qdialog 每个 GroupBox 包含一定数量的复选框 所有组框的复选框列表都是相同的 我没有太多声誉来加载图像 在这里 用户可以根据自己的需要选择复选框并按下 确定 按钮 按下 确定 按
  • 当我们告诉 PDO 不要这样做时,为什么它会生成警告?

    Problem 我们告诉 PDO 将每个问题包装到异常中 在某些情况下 它会生成一些警告 然后才抛出异常 Why它能做到吗 重复 SO 上没有关于它的正确答案 最后一个问题是MySQL 上的 PHP PDO 异常 警告消失了 但人们只是将其
  • 在Mysql中将数字转换为单词

    我正在从数据库中获取一个值 我希望将该值转换为一个单词Mysql 有人可以帮我吗 Eg 123 gt 这个值是从数据库获取的 它以数字形式保存 我想检索这个值一百二十三从数据库中 这样做的语法是什么 查询是这样的 select value
  • Session_Start 在默认 ASP.NET MVC3 项目上多次触发

    我想我可能发现了 ASP NET MVC 及其事件管道的问题 特别是 我发现 Session Start 被多次调用 每次都包含一个新的 SessionID 以下是分步过程 打开VS2010 文件 新项目 ASP NET MVC 3 Web
  • 罗马数字到数字的转换[重复]

    这个问题在这里已经有答案了 尝试编写程序来读取表示罗马数字的字符串 来自用户输入 然后将其转换为阿拉伯形式 整数 例如 I 1 V 5 X 10 等 基本上 采用 String 类型参数的构造函数必须将字符串 来自用户输入 解释为罗马数字并
  • 如何在 Inno Setup 中编辑和检索 JSON 文件的子部分的值

    我正在创建一个安装程序 我需要编辑和检索 JSON 文件中的值 要检索并编辑值Section 2工作正常 问题是编辑和检索子部分的值Section 1 下面我们可以看到一个例子 Section 1 children 1 children 1
  • 直接设置字典元组值

    是否可以做类似的事情 dictTupleTest key Item1 toggle 在以下情况下 Dictionary
  • 如何在空手道中为 json 数组设置动态值

    我有一个 json 文件 每个 post 请求都需要 uniq 值 uniqId 55555 对于所有 uniq id 我需要传递相同的 uniqId 到目前为止 我只能设置 endtoEndid 无法设置invoiceNum 和txnVa
  • JobIntentService 的 onHandleWork() 的最大作业执行时间是多少?

    我遇到了一个SecurityException在 Android 8 上崩溃targetSDK 26使用时JobIntentService 这是来自 JobIntentService 文档 那么最大作业执行时间限制是多少 如果超过它 是否可
  • 测试使用 PersistentEntityResourceAssembler 的自定义 RepositoryRestController

    我有一个RepositoryRestController公开一些持久性实体的资源 我的控制器上有一个方法 需要PersistentEntityResourceAssembler帮助我自动生成资源 RepositoryRestControll
  • 使用块将数据传递回视图控制器

    我在看这个问题 答案之一展示了如何使用块向后传递数据查看prepareForSegue方法 我的理解是这种方法确实应该用于向前传递数据 而不是向后传递数据 我想尝试为此目的进行阻止 将数据传递回另一个 viewController 我的问题
  • 在Python中的文件末尾声明函数[重复]

    这个问题在这里已经有答案了 是否可以在不完全定义函数的情况下调用该函数 当尝试这样做时 我收到错误 函数名未定义 我有 C 背景 所以这个问题困扰着我 在工作之前声明该函数 def Kerma return energy mass prin
  • 如何启用 Core Plot 饼图中的某个部分的触摸选择?

    我正在使用 Core Plot 框架来绘制饼图 并且在绘制饼图本身时没有任何问题 但是 我需要饼图本质上是交互式的 即 如果我点击饼图中的任何特定部分 它应该触发导航到显示该特定部分的详细信息的页面 我尝试使用该方法 void pieCha
  • Android 在应用程序中集成 google+

    任何人都可以在 Android 应用程序中使用 Google 吗 我搜索了同样的事情 但什么也没找到 如果有人有任何想法或相关代码 请在此发布 Thanks 目前还没有公共 API 但您可以在此处注册更新 https services go
  • 如何将行追加到 R 数据框

    我查看了 StackOverflow 但找不到特定于我的问题的解决方案 该解决方案涉及将行附加到 R 数据框 我正在初始化一个空的 2 列数据框 如下所示 df data frame x numeric y character 然后 我的目
  • 浮点固定长度数字格式化c#

    我想在 C 中按如下方式格式化浮点数 以便 C 中浮点数的整个宽度是固定长度 python 等效格式说明符 6 2f 我不希望它在左侧填充 0 但是用空白填充 100 00 90 45 7 23 0 00 到目前为止我已经尝试过什么 str
  • 如何使用 Firemonkey 显示 Android 内存中的可用文件

    在 Delphi for Windows 中 有TOpenDialog和命令如FindFirst 在 Firemonky Android 中没有 TOpenDialog but according to many forumsFindFir