android - Android 上使用 DocumentsProvider API 的一些文件操作

标签 android mime

DocumentsProvider API 是自 Android 5.0 以来管理可移动存储上文件的唯一官方方式。但是,似乎它甚至不支持基本功能。或者,也许,我错过了什么?

  1. 创建一个具有非标准扩展名的新文档(文件)。
    DocumentsContract.createDocument(contentResolver, uri, mimeType, name)
    根据 mimeType 附加扩展名。例如,它为 'text/plain' MIME 类型添加了 .txt。问题是:我可以创建一个名为 file.abc 的文件吗?如果不是,我可以注册一个新的 MIME 类型,它将链接到 abc 扩展名吗?

  2. 移动文档。
    DocumentsContract.renameDocument(contentResolver, uri, newName)
    可以重命名文档。但是我可以将文档移动到另一个目录(更改文档的父目录)吗?我必须创建一个新文档,复制旧文档的内容,然后删除旧文档吗?

  3. 设置文档的修改日期。
    此操作在某些情况下很有用。例如,如果我必须为问题 2 模拟文件系统 move 操作。有没有办法为文档设置任何所需的修改时间?

最佳答案

  1. 可以,但这也取决于设备制造商如何实现 DocumentProvider。

  2. 只能重命名,不能移动父级。您关于创建新文档的看法是正确的。

  3. 不可以,Android 6.0 之前不允许设置上次修改日期。也许在未来。

关于android - Android 上使用 DocumentsProvider API 的一些文件操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31349391/

相关文章:

android - appcompat-v7 :22. 1.0 不工作

c# - CDO.Message.Fields[].Name 包含奇怪的字符

android - .mp3 在 Android 上下载为 .mpga。这与 MIME 类型有关吗?

android - 在android中的编辑文本边框中添加渐变

android - 在 web View 中将可绘制资源作为图像访问

android - 对sqlite的insert语句返回的row_id的说明

没有 UI 的 Android 设置应用程序

php - 如何根据 RFC 2231 在 PHP 中对文件名进行编码?

java - 如何测试文本片段是否经过引用打印编码

php - 为什么 PHP 不为 json 文件返回正确的 mime?