嘿,
我在应用程序中使用 ACTION_CREATE_DOCUMENT 意图,让用户选择下载文件的路径。当文件名唯一时,它工作正常。
根据文档,如果文件名存在,系统不会覆盖原始文件,而是将数字附加到文件末尾。
我尝试了原始的android示例,首先,当没有其他同名文件时,文件被完美创建,并且我可以打开,但是当我想以同名保存文件时,认为系统附加数字,不是在扩展名之前,而是在扩展名之后,如下所示:fileName.jpg(1),之后我无法打开,直到那时我删除了这个附加的字符串。
我只尝试了运行 Android 10 的三星 Galaxy S20,这是一个特定问题,还是我出了什么问题?
如果我可以在保存之前检查文件名,也许这将是一个很好的解决方案,但文档树会创建文件。
我从文档中尝试了这段代码:
const val CREATE_FILE = 1
private fun createFile() {
val intent = Intent(Intent.ACTION_CREATE_DOCUMENT).apply {
addCategory(Intent.CATEGORY_OPENABLE)
type = "application/pdf"
putExtra(Intent.EXTRA_TITLE, "invoice.pdf")
}
startActivityForResult(intent, CREATE_FILE)
}
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助。
如果文件名后面没有扩展名(由 MIME 类型给出),android 会自动添加它。没事儿。
现在它将查找是否存在具有该名称的文件,如果存在,它将添加 (1) 在 user 写入的部分之后。
这些示例显示了文件名的演变过程:
"invoice.pdf" -> "invoice.pdf" -> "invoice.pdf (1)"
"invoice" -> "invoice.pdf" -> "invoice (1).pdf"
Run Code Online (Sandbox Code Playgroud)
所以不要将扩展名放在 EXTRA_TITLE 中:
"invoice.pdf" -> "invoice.pdf" -> "invoice.pdf (1)"
"invoice" -> "invoice.pdf" -> "invoice (1).pdf"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2333 次 |
| 最近记录: |