我试图指向外部存储,即SD卡,但据我所知,SD卡可能始终位于/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
,但是当我尝试使用外部变量时,它只会将文件输出一次,这就是它。