如何将下载的文件保存在“我的 iPhone”文件夹中?

Posted

技术标签:

【中文标题】如何将下载的文件保存在“我的 iPhone”文件夹中?【英文标题】:How to save the downloaded file on "on my iphone" folder? 【发布时间】:2022-01-14 08:11:31 【问题描述】:

简而言之,我正在尝试下载一个 pdf 文件并将其保存在“我的 iphone”文件夹中。

 Future<File?> createFile() async 
   String attachment = "attachments";
   Directory dir;
   File? attachmentPath;
   if (Platform.isandroid) 
    if (await _requestPermission(Permission.storage)) 
    dir = (await getExternalStorageDirectory())!;
    attachmentPath =
        File('$dir.parent.path/$attachment/$getFileName()');

    
    else if (Platform.isios) 
  if (await _requestPermission(Permission.storage)) 
    dir = (await getApplicationDocumentsDirectory());
    attachmentPath =
        File('$dir.path/$attachment/$getFileName()');
  

if (!await attachmentPath!.exists()) 
  await attachmentPath.create(recursive: true);

return attachmentPath;



Future<bool> _requestPermission(Permission permission) async 
print(await permission.isGranted);
if (await permission.isGranted) 
  return true;
 else 
  var result = await permission.request();
  if (result == PermissionStatus.granted) 
    return true;
 
  
 return false;

我还在 \ios\Runner\Info.plist 中启用了 LSSupportsOpeningDocumentsInPlace 和 UIFileSharingEnabled,但我在“我的 iphone 上”中找不到应用程序文件夹 &lt;key&gt;UIFileSharingEnabled&lt;/key&gt; &lt;true/&gt; &lt;key&gt;LSSupportsOpeningDocumentsInPlace&lt;/key&gt; &lt;true/&gt;

【问题讨论】:

【参考方案1】:

iOS 应用程序是沙盒。下载到沙箱中(例如 Documents 文件夹)。

您无法直接访问“我的 iPhone”文件夹。 Apple 会(例如,Safari 下载会保存到该文件夹​​),但您不会。 用户可以将下载的 PDF 移动到“在我的 iPhone 上”(通过 UIDocumentPickerViewController),但您不能自行执行移动。

【讨论】:

以上是关于如何将下载的文件保存在“我的 iPhone”文件夹中?的主要内容,如果未能解决你的问题,请参考以下文章

iOS Swift,“在我的 iPhone 上”文件夹的 url 是啥

iphone/ios sdk:如果应用程序更新,如何删除/清除用户文件

“在我的 iPhone 上”选项在模拟器中不可见。

如何通过 iPhone 应用录制音频?

如何使用 node.js 获取图像上传进度并在我的 iphone 应用程序中使用它

从 PC 上 iPhone App 的文件夹中下载创建的文件