import 'package:path_provider/path_provider.dart';
import 'dart:io';
void createAppFolder() async {
final directory = await getExternalStorageDirectory();
final dirPath = '${directory.path}/some_name' ;
await new Directory(dirPath).create();
}
这是什么我尝试了当然我设置了写入存储的权限,但这段代码创建了一个目录在这个路径/storage/emulated/0/Android/data/com.example.test_app/files/some_name
和什么我需要的是被创建在这个路径/storage/emulated/0/some_name
任何想法是什么我做错了,或者他们是另一种方式来做到这一点?
3条答案
按热度按时间dgiusagp1#
对我来说这很有效
permission_handler
但首先要在Android Manifest中设置权限
这是迄今为止最好的解决方案:
适用于iOS和Android(最佳)
注:
如果您将文件夹命名为
createFolder(".folder")
,该文件夹将被隐藏。如果您在文件夹中创建
.nomedia
文件,其他应用将无法扫描您的文件夹。注二:
截至Android 11及以上版本,应用已被禁止使用“storage/emulated/0/$folderName”创建自定义文件夹
以下解决方案在Android 11及以上版本中已过时:
参考文献
cwdobuhd2#
如果您想在
/storage/emulated/0
中创建目录,请尝试以下操作。}
kdfy810k3#
根据插件代码,
getExternalStorageDirectory()
函数接受StorageDirectory类型的可选参数。您可以尝试提供类型参数。可用的类型有:有关更多详细信息,您可以参考this code如果您的问题仍未解决,您可以向插件作者提出请求。
希望有帮助。