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()
写出您修改的内容。
在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()
写出您修改的内容。