Flutter 如何在本地存储/外部颤振中创建文件夹?
这就是我尝试过的,当然我设置了写入存储的权限,但是这段代码在这个路径上创建了一个目录Flutter 如何在本地存储/外部颤振中创建文件夹?,flutter,dart,flutter-dependencies,Flutter,Dart,Flutter Dependencies,这就是我尝试过的,当然我设置了写入存储的权限,但是这段代码在这个路径上创建了一个目录/storage/emulated/0/Android/data/com.example.test\u app/files/some\u name 我需要的是在这个路径上创建/storage/emulated/0/some_name知道我做错了什么,或者它们是另一种方法吗???根据插件代码,getExternalStorageDirectory()函数采用StorageDirectory类型的可选参数。您可以尝试
/storage/emulated/0/Android/data/com.example.test\u app/files/some\u name
我需要的是在这个路径上创建
/storage/emulated/0/some_name
知道我做错了什么,或者它们是另一种方法吗???根据插件代码,getExternalStorageDirectory()
函数采用StorageDirectory类型的可选参数。您可以尝试提供类型参数。
可用类型包括:
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/simulated/0
中创建目录,请尝试此操作
enum StorageDirectory {
/// Contains audio files that should be treated as music.
///
/// See https://developer.android.com/reference/android/os/Environment.html#DIRECTORY_MUSIC.
music,
/// Contains audio files that should be treated as podcasts.
///
/// See https://developer.android.com/reference/android/os/Environment.html#DIRECTORY_PODCASTS.
podcasts,
/// Contains audio files that should be treated as ringtones.
///
/// See https://developer.android.com/reference/android/os/Environment.html#DIRECTORY_RINGTONES.
ringtones,
/// Contains audio files that should be treated as alarm sounds.
///
/// See https://developer.android.com/reference/android/os/Environment.html#DIRECTORY_ALARMS.
alarms,
/// Contains audio files that should be treated as notification sounds.
///
/// See https://developer.android.com/reference/android/os/Environment.html#DIRECTORY_NOTIFICATIONS.
notifications,
/// Contains images. See https://developer.android.com/reference/android/os/Environment.html#DIRECTORY_PICTURES.
pictures,
/// Contains movies. See https://developer.android.com/reference/android/os/Environment.html#DIRECTORY_MOVIES.
movies,
/// Contains files of any type that have been downloaded by the user.
///
/// See https://developer.android.com/reference/android/os/Environment.html#DIRECTORY_DOWNLOADS.
downloads,
/// Used to hold both pictures and videos when the device filesystem is
/// treated like a camera's.
///
/// See https://developer.android.com/reference/android/os/Environment.html#DIRECTORY_DCIM.
dcim,
/// Holds user-created documents. See https://developer.android.com/reference/android/os/Environment.html#DIRECTORY_DOCUMENTS.
documents,
}
}对我来说这很有效但是首先在Android清单中设置权限
import 'dart:io';
_createFolder()async{
final folderName="some_name";
final path= Directory("storage/emulated/0/$folderName");
if ((await path.exists())){
// TODO:
print("exist");
}else{
// TODO:
print("not exist");
path.create();
}
Future createFolder(字符串)异步{
最终folderName=cow;
最终路径=目录(“存储/模拟/0/$folderName”);
var status=等待权限.storage.status;
如果(!status.isgrated){
等待权限.storage.request();
}
if((等待路径exists())){
返回路径.path;
}否则{
path.create();
返回路径.path;
}
}
另外请注意:如果您命名您的
createFolder(“.folder”)
该文件夹将被隐藏。谢谢,但它们都没有提供我需要的路径。我测试了它,我会在插件的repo上看到它们是否是解决方案。除非应用程序具有存储权限,否则这将无法工作。请参阅此答案,其中还包括权限请求,当我连接到计算机时,无法在手机中看到创建的“$folderName”文件夹。是的,通过usb电缆将手机连接到计算机。请建议。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Future<String> createFolder(String cow) async {
final folderName = cow;
final path = Directory("storage/emulated/0/$folderName");
var status = await Permission.storage.status;
if (!status.isGranted) {
await Permission.storage.request();
}
if ((await path.exists())) {
return path.path;
} else {
path.create();
return path.path;
}
}