【发布时间】:2017-01-26 05:46:41
【问题描述】:
我正在使用 Firemonkey (Delphi XE6) 开发一个基本的 MP3 播放器 Android 应用程序,其中 MP3 文件将在安装后添加到 SD 卡(外部)中。因此,一旦用户在他们的设备上激活/打开了应用程序,我需要我的应用程序能够搜索这些特定的 MP3 文件。
文件搜索的代码很好,但我的问题是在 SD 卡上保存文件的位置以及如何在代码中找到文件夹/目录位置。
这个概念应该很简单,但 Firemonkey (似乎)使这比想象的要困难得多。
这是我的文件搜索代码:
var
sr : TSearchRec;
i : Integer;
Storage : String;
begin
//List files found on SD Card on device only, for now
Storage := TPath.Combine(TPath.GetMusicPath, '*.mp3');
if FindFirst(Storage, faAnyfile, sr) = 0 then
begin
repeat
listSessions.Items.Add(sr.Name);
until FindNext(sr) <> 0;
end;
FindClose(sr);
end;
我只想知道,为了爱所有美好而纯洁的事物,我应该在哪里搜索?上面的位置没有提供任何乐趣,也不是通用的 GetMusicPath 结果。我不能真正对目录路径进行硬编码,因为那样它只能在一个 android 设备上工作。我需要它在所有 android 设备上通用。
TPath.GetDocumentsPath、TPAth.GetMusicPath 和所有其他类似的工具都能让我找到各种被上帝遗忘的位置,我什至在文件资源管理器中都找不到。例如,我的“通用”音乐位置(这是我想要使用的)返回此路径:/storage/emulated/0/Android/data/com.embarcadero./files/Music。
我做错了吗?
【问题讨论】:
标签: firemonkey delphi-xe6