android 10删除文件夹

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;

如果我在Android 7/9中创建文件夹,位置是:

Environment.getExternalStorageDirectory()+“文件夹名称”

但在安卓10中,我想删除旧文件夹,如何删除该文件夹

到目前为止,我已经尝试了3种方法

一,

二,

获取文件夹列表,然后删除所有文件,如此线程所示:

三,

使用MediaStore方式,我找不到该文件夹

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);

}