Я пытаюсь указать на внешнее хранилище, т.е. sdcard, но, насколько я понимаю, возможно, что sdcard не всегда находится в /mnt/sdcard
, поэтому я пытаюсь использовать вместо этого функцию getExternalStorageDirectory
.
Вот текущий код:
File sdCard = Environment.getExternalStorageDirectory();
File dir = new File (sdCard.getAbsolutePath() + "/dir/dir");
dir.mkdirs();
AssetManager assetManager = getAssets();
String[] files = null;
try {
files = assetManager.list("");
} catch (IOException e) {
Log.e("tag", e.getMessage());
}
for(String filename : files) {
if (filename.equals(passedImageVar)) {
InputStream in = null;
OutputStream out = null;
try {
in = assetManager.open(filename);
out = new FileOutputStream(dir + "routeimage.gif");
copyFile(in, out);
in.close();
in = null;
out.flush();
out.close();
out = null;
} catch(Exception e) {
Log.e("tag", e.getMessage());
} }
}
Этот код используется, когда проверяется переменная, и если true, он копирует изображение из папки ресурсов на SD-карту, перезаписывая routeimage.gif
каждый раз при щелчке по новой строке.
Если я использую:
out = new FileOutputStream("/sdcard/" + "routeimage.gif");
код работает отлично. Он каждый раз перезаписывает routeimage.gif
новым изображением, но когда я пытаюсь использовать внешнюю переменную, он запускает выходной файл только один раз, и все.