在 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(使用前将#替换为@)