Writing/modifying SD 卡 public 存储中的文件在 Android 中?

Writing/modifying files in sd card's public storage in Android?

在Android 5.0+中如何获取存储在SD卡外部存储中的文件列表(音乐,图片...),修改文件内容并覆盖旧文件。

你想要的完全不可能。

您最接近的是:

  • 使用ACTION_OPEN_DOCUMENT_TREE让用户选择文档树。用户可以选择任何用户想要的。它不一定是可移动存储——它可以是外部存储、Google 驱动器等

  • 鉴于您从 ACTION_OPEN_DOCUMENT_TREE activity 返回的 Uri,使用 fromTreeUri() 将其包装在 DocumentFile 中。

  • 从那里开始,使用 DocumentFile 有点像使用 File,递归地使用 listFiles()isDirectory() 遍历文档树。

  • 对于任何你想修改的内容,在DocumentFile上使用getUri()来获取那部分内容的Uri,使用openInputStream()ContentResolver 上读取内容,并在 ContentResolver 上使用 openOutputStream() 写出您修改的内容。