Flutter之文件操作
引入第三方包
path_provider: ^1.6.11
官方文档
文件操作
FlatButton(
onPressed: () {
getTemporaryDirectory().then((value) {
print("---->path:${value.path}");
// /data/user/0/com.barray.flutterapp/cache
});
getApplicationDocumentsDirectory().then((value) {
print("---->application:${value.path}");
// /data/user/0/com.barray.flutterapp/app_flutter
});
getExternalStorageDirectory().then((value) {
print("--->external:${value.path}");
// /storage/emulated/0/Android/data/com.barray.flutterapp/files
});
// 获取app_flutter文件夹下的所有文件
getApplicationDocumentsDirectory().then((value) {
var directory = Directory("${value.path}/test");
print("文件夹路径:${directory.path}");
if(!directory.existsSync()){
print("文件夹不存在--->准备创建");
directory.createSync();
}
// 创建文件
var file = File("${directory.path}/hello.txt");
if(!file.existsSync()){
print("文件不存在--->准备创建");
file.createSync();
}
// 遍历文件夹中的所有文件
directory.listSync().forEach((element) {
print(element.path);
});
// 写入文件
file.writeAsStringSync("hello world");
// 读文件
String content = file.readAsStringSync();
print("文件内容:$content");
// 文件拷贝
var copyFile = file.copySync("${directory.path}/hello2.txt");
// 删除文件
copyFile.deleteSync();
// 如果文件夹不为空则会报错 OS Error: Directory not empty, errno = 39
try{
directory.deleteSync();
print("删除文件成功");
}catch(e){
print("删除文件出错了:$e");
}
/// 打印的日志
/// I/flutter (15052): 文件夹路径:/data/user/0/com.barray.flutterapp/app_flutter/test
/// I/flutter (15052): /data/user/0/com.barray.flutterapp/app_flutter/test/hello.txt
/// I/flutter (15052): 文件内容:hello world
/// I/flutter (15052): 删除文件出错了:FileSystemException: Deletion failed, path = '/data/user/0/com.barray.flutterapp/app_flutter/test' (OS Error: Directory not empty, errno = 39)
});
},
child: Text("获取本地路径")),