我的朋友和我正在尝试创建一个将文件保存到设备的应用。我们使用此代码写入外部SD卡,它在他的Droid X和三星Galaxy Tab上运行良好。
获取SD卡的路径:
private static final File ROOT = Environment.getExternalStorageDirectory();
创建文件夹路径和文件:
FileWriter fw = new FileWriter(ROOT + "/test/" + "time_frames.txt");
我们正在使用文档工厂来创建文档
所以你可以看到我们创建路径然后尝试保存到刚刚创建的路径
File file = new File(ROOT + "/test/" + "time_frames.txt");
当我在Nexus S(没有SD卡)上运行它时,使用完全相同的代码时出现问题。
private static final File ROOTtest = Environment.getExternalStorageDirectory();
这会返回/ data
private static final File ROOT = Environment.getRootDirectory();
这会返回/ mnt / sdcard
private static final File intData = Environment.getDataDirectory();
这会返回/ system
我的问题是,其中哪一项适用于具有SD卡且没有SD卡的设备?我已经尝试了很多,但尝试所有这些东西真的让我很困惑。提前致谢
答案 0 :(得分:6)
Environment.getExternalStorageDirectory()
返回外部存储的路径,它应该适用于所有设备。他们是否有实际的SD卡并不重要,您的代码也不应该关心。在尝试使用外部存储之前,您需要确保它是可用的,因为它可以随时卸载。