[英]Cannot read a file from Downloads folder on Android
我有帶有自定義擴展名的文本文件。 我已經將我的 Delphi FMX 應用程序部署到 Documents 文件夾中,並且使用TStringList.LoadFromFile(Path)
可以正常加載。 路徑是:
/data/user/0/com.embarcadero.[appname]/files/[filename]
然后我嘗試從以下路徑加載文件:
/storage/emulated/0/Download/[filename]
FileExists(Path)
返回 true,表示文件確實存在。 但是,它在TStringList.LoadFromFile(Path)
中失敗。
我認為這是一些權限問題。 但是,我已經在“使用權限”下的 Delphi 項目選項中檢查了“讀取外部存儲”是否已啟用,因此清單應該包含它。 此位置是否需要任何其他權限設置?
請注意,我正在使用 Android 8 在華為 P10 上進行測試。
根據 Object Pascal/Mobile Snippets/CameraRoll 示例,在對 ReadExternalStorage 使用 PermissionService.RequestPermissions 后加載文件。
{$IF DEFINED (ANDROID)}
var FStorage := '/storage/emulated/0/RAH Download';
{$ELSEIF DEFINED (MSWINDOWS)}
var FStorage := ExpandFileName(GetCurrentDir) + PathDelim + 'Download';
{$ELSE}
ShowMessage('Not Support';
Exit;
{$ENDIF}
if not DirectoryExists(FStorage) then begin
if not CreateDir(FStorage) then
Exit;
end;
==================================================== =========
var HTTP := TNetHTTPClient.Create(nil);
try
var Stream := TMemoryStream.Create;
try
HTTP.Get(FURL, Stream);
Stream.SaveToFile(FStorage + Pathdelime + 'FileName');
finally
Stream.DisposeOf;
end;
finally
HTTP.DisposeOf;
end;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.