当前位置: 首页 > 知识库问答 >
问题:

Delphi XE5 Android问题定位文件

孙永嘉
2023-03-14

我有问题找到并打开一个文件,我已经存储在我的手机从我的电脑。尽管这个答案有很好的解决方案,但我还是无法让它工作。我在一台HTC Sensation Z710e上运行

下面是我试图运行的代码:

function GetSDCardPath: string;
var MusicPathLength: integer;
    MusicPath, SDCardPath: string;
begin
 MusicPath:=System.IOUtils.TPath.GetSharedMusicPath;
 MusicPathLength:=Length(MusicPath);
 SDCardPath:=Copy(MusicPath, 0, MusicPathLength-5);
 Result:=SDCardPath;
end;

procedure TForm3.Button1Click(Sender: TObject);
var sr:TSearchRec;
begin
  CardPath:=TPath.Combine(GetSDCardPath,'*.*');

  if (FindFirst(CardPath,faNormal,sr)=0) then
  begin
    repeat
      Memo1.Lines.Add(sr.Name);
    until FindNext(sr)<>0;
    FindClose(sr);
  end;
end;

我用下面的代码做了第二次测试,我显然可以存储文件,因为文件名出现在文件列表中,但它似乎没有存储在SD卡上,至少没有显示为我的外部驱动器F:在我的pc.TPath。GetDocumentsPath应该指向SD卡,不是吗?

procedure TForm3.Button1Click(Sender: TObject);
var sr:TSearchRec;
begin
  CardPath:=TPath.Combine(TPath.GetDocumentsPath,'*.*');
  Memo1.Lines.Add(CardPath);

  if (FindFirst(CardPath,faAnyFile,sr)=0) then
  begin
    repeat
      Memo1.Lines.Add(sr.Name);
    until FindNext(sr)<>0;
    FindClose(sr);
  end;
end;

procedure TForm3.WriteClick(Sender: TObject);
var
  s: string;
  F:TextFile;
begin
  Memo1.Lines.Clear;
  s := TPath.Combine(TPath.GetDocumentsPath,'file2.txt');
  AssignFile(F,s);
  ReWrite(F);
  Writeln(F,'Test');
  CloseFile(F);
end;

首先,我单击“写入”按钮写入文件,然后通过单击按钮1列出目录中的文件。卡片路径是/data/data/com。恩巴卡德罗。TestApp2/files/。我有一个Android/data/com。恩巴卡德罗。TestApp 2/文件/文件夹在我的pc设备上可见,但没有文件。文件是否存储在我的设备中?

共有1个答案

夏侯自珍
2023-03-14

我终于找到了解决这个问题的方法。通过使用TPath。GetSharedDocumentsPath我可以看到从PC上的应用程序保存的文件,如果设备没有被连接为驱动器保存时(在本页提到)。E. i.当使用应用程序时,电脑不能同时使用SD卡作为驱动器。

 类似资料:
  • 我有一套使用gradle运行后端服务器的代码。我正在终端中运行。当我运行它时,它开始处理,然后抛出关于文件位置的巨大错误。如果我能解决这个问题,我该怎么解决呢。 我正试图弄清楚为什么找不到这些文件。 使现代化 这就是构建。格雷德尔档案。。。我在试着跑gradle:Bootlun

  • 好的,我有一个Jpanel,在下图中使用覆盖布局显示为白色。它包含一个包含图像(“无可用图像”)和JButton(“注释”)的ScrollPane。 我想把这个按钮放在JGroup的右下角。我尝试了多种布局方法,但似乎无法让它工作。最多按钮向东南移动大约3/4,我不知道为什么。 非常感谢任何帮助。。

  • 一个正常的火焰图,应该呈现出如官网给出的样例(官网的火焰图是抓 C 级别函数): 从上图可以看出,正常业务下的火焰图形状类似的“山脉”,“山脉”的“海拔”表示 worker 中业务函数的调用深度,“山脉”的“长度”表示 worker 中业务函数占用 cpu 的比例。 下面将用一个实际应用中遇到问题抽象出来的示例(CPU 占用过高)来说明如何通过火焰图定位问题。 问题表现,Nginx worker

  • css问题 下面代码 为什么ul使用绝对定位居中 a元素变成块元素 文字会垂直 代码 为什么用绝对定位居中宽度展示文字会被挤下去 如下图 如果用flex布局居中就是没问题 代码如下图 效果如下图

  • 问题内容: 最近我正在构建一个应用程序,现在我在布局和位置上遇到了一些问题。实际上,我建立了布局,但是当我在更大的屏幕上进行测试时,所有内容都崩溃了,我的应用程序外观也不佳。制作UI的最佳方法是什么? 问题答案: 请参阅支持多个屏幕。 另外,在创建UI时,请尝试保持布局不变,并避免对其进行硬编码,以使UI可以适合所有屏幕。编码愉快。

  • 面试官:「你是怎么定位线上问题的?」 这个面试题我在两年社招的时候遇到过,前几天面试也遇到了。我觉得我每一次都答得中规中矩,今天来梳理复盘下,下次又被问到的时候希望可以答得更好。 下一次我应该会按照这个思路去答: 1、如果线上出现了问题,我们更多的是希望由监控告警发现我们出了线上问题,而不是等到业务侧反馈。所以,我们需要对核心接口做好监控告警的功能。 2、如果是业务代码层面的监控报警,那我们应该是