1

目前正在尝试编辑我存储在 Android 11 / Android R MediaStore API 的下载集合中的文件。我使用以下代码编辑文件:

            while (cursor.moveToNext()) {
                long id = cursor.getLong(idColumn);

                Uri contentUri = ContentUris.withAppendedId(MediaStore.Downloads.EXTERNAL_CONTENT_URI, id);
                try (OutputStream myFile = getContentResolver().openOutputStream(contentUri, "wa")) {
                    myFile.write("XXX Dies ist eine Aenderung XXX".getBytes(Charset.forName("UTF-8")));
                }


                catch (Exception e){}
            }

在像这样创建它之后,ala 具有更短的初始内容:


        try {
            OutputStream fos = resolver.openOutputStream(Objects.requireNonNull(anUri));
            fos.write("File Hallo".getBytes(Charset.forName("UTF-8")));
            fos.close();
        }

运行第二个代码时,我没有收到完整的消息。相反,Android 似乎开始覆盖文件,但只写入与文件原始长度一样多的信息。

根据我对文档的阅读,我所能做的就是 a) 制作本地副本 b) 将其推送回 MediaStore。可以吗?有没有办法编辑已经位于文件系统中的文件?

4

0 回答 0