如何获取下载文件夹的(绝对)路径?

2024-04-13

在 Flutter 项目中,如何获取 Android 设备中 Download 文件夹的(绝对)路径? 我的下载文件夹接下来是:闹钟、Android、数据、DCIM、文档、电影、音乐、通知、图片……

设备:GALAXY S8+ SM-G955F。安卓8.0。未扎根。 Flutter 测试版 v0.5.1。 Dart 2.0.0-dev.58.0。 Windows 10

显示我的下载文件夹的文件管理器 https://i.stack.imgur.com/qtMaw.jpg


使用这个包path_provider我得到了这 3 条路径:

/data/user/0/com.exemple.fonzo/cache
/data/user/0/com.exemple.fonzo/app_flutter
/storage/emulated/0

我无法在未 root 的设备 GALAXY S8+ SM-G955F 上从 Solid-Explorer 文件管理器找到或访问这 3 个文件夹。安卓8.0。我只想找到文件夹(如下载)的绝对路径:

  • 我可以使用我的 Android 文件管理器应用程序进行访问。
  • 我可以将我的 flutter 项目中的文件写入此文件夹中。

我个人使用这个方法:

path_provider: 2.0.9
Future<String?> getDownloadPath() async {
    Directory? directory;
    try {
      if (Platform.isIOS) {
        directory = await getApplicationDocumentsDirectory();
      } else {
        directory = Directory('/storage/emulated/0/Download');
        // Put file in global download folder, if for an unknown reason it didn't exist, we fallback
        // ignore: avoid_slow_async_io
        if (!await directory.exists()) directory = await getExternalStorageDirectory();
      }
    } catch (err, stack) {
      print("Cannot get download folder path");
    }
    return directory?.path;
  }

Output :

  • 在 IOS 上,它会创建一个以您的应用程序名称命名的文件夹,并将文件放入其中。用户可以轻松找到该文件夹​​,非常直观。
  • 在Android上,我测试默认下载文件夹是否存在(大多数情况下都有效),否则我将其放入外部存储目录中(在这种情况下,用户很难手动找到该文件......)。

对于 IOS :(@Wai Yan 提到) 也许在您的 plist.info 中添加以下键,以便更好地在文档文件夹中查看您的应用程序(https://stackoverflow.com/a/74457977/10088439 https://stackoverflow.com/a/74457977/10088439).

UISupportsDocumentBrowser
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取下载文件夹的(绝对)路径? 的相关文章

随机推荐