android 10删除文件夹
如果我在Android 7/9中创建文件夹,位置是: Environment.getExternalStorageDirectory()+“文件夹名称” 但在安卓10中,我想删除旧文件夹,如何删除该文件夹 到目前为止,我已经尝试了3种方法 一, 二, 获取文件夹列表,然后删除所有文件,如此线程所示: 三, 使用MediaStore方式,我找不到该文件夹android 10删除文件夹,android,android-10.0,Android,Android 10.0,如果我在Android 7/9中创建文件夹,位置是: Environment.getExternalStorageDirectory()+“文件夹名称” 但在安卓10中,我想删除旧文件夹,如何删除该文件夹 到目前为止,我已经尝试了3种方法 一, 二, 获取文件夹列表,然后删除所有文件,如此线程所示: 三, 使用MediaStore方式,我找不到该文件夹 String[] projection = null; String selection; String[] selectionArgs;
String[] projection = null;
String selection;
String[] selectionArgs;
Cursor cursor = null;
projection = new String[]{ MediaStore.Files.FileColumns._ID, MediaStore.Files.FileColumns.TITLE};
selection = MediaStore.Files.FileColumns.DATA + " like ?";
selectionArgs = new String[]{"%" + "FOLDER_NAME" + "/%"};
Uri external = null;
for (String volumeName : MediaStore.getExternalVolumeNames(context)) {
external = MediaStore.Files.getContentUri(volumeName);
break;
}
cursor = context.getContentResolver().query(
MediaStore.Files.getContentUri("external"),
projection,
selection,
selectionArgs,
null);
if(cursor.moveToFirst()) {
Uri fileUri = Uri.withAppendedPath(external, cursor.getString(cursor.getColumnIndex(MediaStore.Files.FileColumns._ID)));
ContentResolver resolver = context.getContentResolver();
resolver.delete(fileUri, null, null);
}
有什么方法可以删除Android 10中的旧文件夹吗?也许Android Q的文件管理器应用程序可以完成这项工作 否则,请使用存储访问框架 采取措施打开文档树,让用户选择目录的父目录
获得父文件夹的写入权限后,您现在可以删除任何子文件夹。如果您具有该文件夹的URI访问权限,则可以通过以下方式递归删除该文件夹(及其子文件夹):
//我们要删除文件夹/storage/emulated/0/Video/Horror
val folder=DocumentFileCompat.fromSimplePath(context,basePath=“Video/Horror”)
//如果只想删除其子项,请将childrenOnly设置为true
val success=folder?.deleteRecursive(上下文,childrenOnly=false)
那么您会遇到什么类型的错误?
String[] projection = null;
String selection;
String[] selectionArgs;
Cursor cursor = null;
projection = new String[]{ MediaStore.Files.FileColumns._ID, MediaStore.Files.FileColumns.TITLE};
selection = MediaStore.Files.FileColumns.DATA + " like ?";
selectionArgs = new String[]{"%" + "FOLDER_NAME" + "/%"};
Uri external = null;
for (String volumeName : MediaStore.getExternalVolumeNames(context)) {
external = MediaStore.Files.getContentUri(volumeName);
break;
}
cursor = context.getContentResolver().query(
MediaStore.Files.getContentUri("external"),
projection,
selection,
selectionArgs,
null);
if(cursor.moveToFirst()) {
Uri fileUri = Uri.withAppendedPath(external, cursor.getString(cursor.getColumnIndex(MediaStore.Files.FileColumns._ID)));
ContentResolver resolver = context.getContentResolver();
resolver.delete(fileUri, null, null);
}