我在这个地址里有一个文件:
path = '/storage/084C-1C0F/Yalin - Deva Bize Sevisler [128].mp3'
因此,在 android 清单中插入此权限后:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
我想删除这个文件:
checkPermission().then((value) {
final dir = Directory(model.path);
dir.deleteSync(recursive: true);
BlocProvider.of<AllMusicBloc>(context)
.add(DeleteDeviceMusic(model.id));
});
Future<bool> checkPermission() async {
var status = await Permission.storage.status;
if (!status.isGranted) {
await Permission.storage.request();
}
return true;
}
但是我得到了这个错误:
E/flutter (16660): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: FileSystemException: Deletion failed, path = '/storage/084C-1C0F/Yalin - Deva Bize Sevisler [128].mp3' (OS Error: Permission denied, errno = 13)
可移动的micro sd卡对于该路径不可写
我认为 Flutter 没有自己这样做,因为我使用了本机代码
对于安卓 :
private void removeFile(String path){
File sd = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
File image = new File(sd+ File.separator, path);
if (image.exists()) {
if (image.delete()) {
System.out.println("file Deleted :" + image.getPath());
} else {
System.out.println("file not Deleted :" + image.getPath());
}
}
}