路径:“/ sdcard /”适用于所有设备?

时间:2015-10-20 11:24:51

标签: android android-sdcard

我在我的应用中使用了这段代码。

所有设备都 OKAY 吗?它适用于所有设备吗?

String path= "/sdcard/.beta1/data/text/myfile.txt";
File myFile = new File(path);
myFile.getParentFile().mkdirs();
myFile.createNewFile();
FileOutputStream fOut = new FileOutputStream(myFile);

我也试过Environment.getExternalStorageDirectory().getPath();,但我很困惑哪一个更好更稳定?

2 个答案:

答案 0 :(得分:2)

  

所有设备都可以吗?它能在所有设备上运行吗?

没有。它不仅不适用于所有设备,而且不适用于所有设备的所有用户。大多数Android设备支持多个用户;不同的用户将拥有internal storageexternal storage的不同路径。 永远没有硬编码路径

使用getExternalCacheDir()getExternalFilesDir()Environment.getExternalStoragePublicDirectory()Environment.getExternalStorageDirectory()处理外部存储上的文件。前两个的优点是不需要API级别19及更高级别的任何权限。

答案 1 :(得分:1)

阅读文件:

final File file = new File(Environment.getExternalStorageDirectory()
                          .getAbsolutePath(), filename);

filename它是String变量

或者您也可以使用:

File sdCardDirectory = new File(Environment.getExternalStorageDirectory() + File.separator + "MyFolder/" + "MyFile.txt");