[英]Path of getExternalStoragePublicDirectory on Samsung Galaxy Note
在我的应用程序中,我正在创建存储在设备下载目录中的文件。 我的所有用户都对这种机制感到满意......除了那些使用三星Galaxy Note的用户。
没有拥有这样的设备就很难调试。 在我的代码中,我正在使用
File newFile = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS),
"file01");
if (newFile.exists()) {
// show error
} else {
if (!newFile.mkdirs()) {
// show error
}
}
找到目标目录的路径。 在Galaxy Note上,返回的路径是“/ storage / sdcard0 / Download”。 但是,在本地文件系统目录中以小写(“下载”)编写,并且我的应用程序创建的文件显然不存在于本地文件目录中。 至少我的用户抱怨这个。 我假设问题与路径中的小写/大写差异有关。
有没有人知道为什么它适用于除Galaxy Note之外的所有设备?
谢谢!
无法保证getExternalStoragePublicDirectory()
返回的位置确实存在。 您的可能是第一个需要这些目录中特定目录的应用程序。 因此,你的工作就是在所有设备上调用mkdirs()
,而不仅仅是这个。
除此之外,至于为什么其他人(三星或其他第三方应用程序)正在创建一个小写download
目录,确定“为什么”的唯一方法是弄清楚谁创建了该目录,然后联系该开发人员。 这不太可能是值得的投资。
只要你调用mkdirs()
来创建Download
,任何其他可能存在的目录都不是你真正关心的问题。 如果你想检测这样的可能碰撞,并警告用户,你可以这样做,虽然我不知道这是否值得。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.