小编Sur*_*cse的帖子

Android 10:contentResolver.delete() 未从文件系统中删除文件

我正在使用 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 中删除

android mediastore android-contentresolver

5
推荐指数
1
解决办法
1377
查看次数