我正在使用 MediaStore.Files 在 InternalStorage/Documents/MyFolderName/xyz.pdf 中创建文件
使用
ContentValues contentValues = new ContentValues();
contentValues.put(MediaStore.Files.FileColumns.DISPLAY_NAME, fileName);
contentValues.put(MediaStore.Files.FileColumns.MIME_TYPE, fileType);
contentValues.put(MediaStore.Files.FileColumns.IS_PENDING, 1);
contentValues.put(MediaStore.Files.FileColumns.RELATIVE_PATH, dstPublicDirectory + File.separator + dstSubDirectory);
// Getting content uri for the file
Uri dstFileUri = resolver.insert(MediaStore.Files.getContentUri("external"), contentValues);
Run Code Online (Sandbox Code Playgroud)
我能够创建该 xyz.pdf 文件
但是,为了删除我正在使用的文件
getActivity().getContentResolver().delete(fileUriToDelete, null, null);
Run Code Online (Sandbox Code Playgroud)
以上已从 MediaStore.Files 的数据库中删除,但无法删除文件系统中的该文件。
由于该文件仍然在以下位置可用:InternalStorage/Documents/MyFolderName 这种情况仅在 Android 10 中发生。在 Android 11 中,该文件将从文件系统以及 MediaStore.Files db 中删除