Используя страницу хранения данных в документах, я попытался хранить некоторые данные к SD-карте. Это - мой код:
// Path to write files to
String path = Environment.getExternalStorageDirectory().getAbsolutePath() +
"/Android/data/"+ctxt.getString(R.string.package_name)+"/files/";
String fname = "mytest.txt";
// Current state of the external media
String extState = Environment.getExternalStorageState();
// External media can be written onto
if (extState.equals(Environment.MEDIA_MOUNTED))
{
try {
// Make sure the path exists
boolean exists = (new File(path)).exists();
if (!exists){ new File(path).mkdirs(); }
// Open output stream
FileOutputStream fOut = new FileOutputStream(path + fname);
fOut.write("Test".getBytes());
// Close output stream
fOut.flush();
fOut.close();
} catch (IOException ioe) {
ioe.printStackTrace();
}
Когда я создаю новый FileOutputStream, я получаю исключение FileNotFound. Я также заметил, что "mkdirs ()", кажется, не создает каталог.
Кто-либо может сказать мне, что я делаю неправильно?
Я тестирую на AVD с SD-картой на 2 ГБ и "hw.sdCard: да", говорит Файловый менеджер DDMS в Eclipse мне, что единственный каталог на sdcard является "LOST.DIR".
Предоставляли ли вы своему приложению разрешение на запись на SD-карту ?
Для этого добавляете следующее в свой AndroidManifest.xml
:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />