我正在使用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);
我能够创建那个 xyz.pdf 文件,
但是,为了删除那个文件,我使用的是:
getActivity().getContentResolver().delete(fileUriToDelete, null, null);
以上内容已从MediaStore.Files数据库中删除,但无法在文件系统中删除该文件。
由于该文件仍然可在以下位置找到: InternalStorage/Documents/MyFolderName 这只发生在Android 10中。在Android 11中,该文件将从文件系统以及MediaStore.Files数据库中删除。
android:requestLegacyExternalStorage="true"
并通过文件系统API将其删除。 - CommonsWare