三星Galaxy Note上getExternalStoragePublicDirectory的路径

时间:2014-03-18 15:46:12

标签: android galaxy

在我的应用中,我正在创建存储在设备下载目录中的文件。我的所有用户都对这种机制感到满意......除了那些使用三星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"。但是,在本地文件系统目录中使用小写(" download"),并且我的应用程序创建的文件显然不存在于本地文件目录中。至少我的用户抱怨这个。我假设问题与路径中的小写/大写差异有关。

有没有人知道为什么它适用于除Galaxy Note之外的所有设备?

谢谢!

1 个答案:

答案 0 :(得分:8)

无法保证getExternalStoragePublicDirectory()返回的位置确实存在。您的可能是第一个需要这些目录中特定目录的应用程序。因此,您的工作就是在所有设备上拨打mkdirs(),而不仅仅是这个设备。

除此之外,为什么其他人(三星或其他第三方应用程序)正在创建一个小写的download目录,这是确定"为什么"是找出谁创建了该目录,然后联系该开发人员。这不太可能是值得投资的。

只要您调用mkdirs()来创建Download,可能存在的任何其他目录都不是您真正关心的问题。如果您想检测这样的可能碰撞,并警告用户,您可以这样做,但我不知道这是否值得。