Я пытаюсь сохранить свой файл к следующему местоположению
FileOutputStream fos = new FileOutputStream("/sdcard/Wallpaper/"+fileName);
но я получаю исключение java.io.FileNotFoundException
Однако, когда я поместил путь как "/sdcard/"
работает.
Теперь я предполагаю, что не могу создать каталог автоматически этот путь.
Может кто-то предлагать, как создать a directory and sub-directory
использование кода?
Если вы создаете объект файл , который оборачивает каталог верхнего уровня, вы можете вызвать его MKDIRS () метод для создания всех необходимых каталогов. Что-то вроде:
// create a File object for the parent directory
File wallpaperDirectory = new File("/sdcard/Wallpaper/");
// have the object build the directory structure, if needed.
wallpaperDirectory.mkdirs();
// create a File object for the output file
File outputFile = new File(wallpaperDirectory, filename);
// now attach the OutputStream to the file object, instead of a String representation
FileOutputStream fos = new FileOutputStream(outputFile);
Примечание: может быть разумно использовать Environment.getexternalstorageirectory () для получения каталога «SD-карта», поскольку это может измениться, если телефон приходит, который имеет что-то другое, чем SD-карта (например, встроенная вспышка, A'LA iPhone). В любом случае, в любом случае вы должны помнить, что вам нужно проверить, чтобы убедиться, что он на самом деле там, поскольку SD-карта может быть удалена.
Обновление: Поскольку API Уровень 4 (1.6) Вам также придется запросить разрешение. Что-то вроде этого (в манифесте) должно работать:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />