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

如何使用Firemonkey在Android内存中显示可用文件,第1张

概述在DelphiforWindows中,有一个包含TOpenDialog和FindFirst等命令.在Firemonky/Android中没有TOpenDialog,但根据许多forumsFindFirst`应该存在.然而,有更多的人有问题,但没有解决方案:在Windows中,以下功能正常:variResult,n:integer;Filenaam,s:string;sr:TSearchRec;b

在Delphi for Windows中,有一个包含topenDialog和FindFirst等命令.
在Firemonky / Android中没有topenDialog,但根据许多forumsFindFirst`应该存在.然而,有更多的人有问题,但没有解决方案:

在windows中,以下功能正常:

var iResult,n:integer;filenaam,s:string;sr: TSearchRec;beginwith form1 dobegin    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)'

结束;}

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;beginform1.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;
总结

以上是内存溢出为你收集整理的如何使用Firemonkey在Android内存中显示可用文件全部内容,希望文章能够帮你解决如何使用Firemonkey在Android内存中显示可用文件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1107082.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存