使用Environment.getEternalStorageDirectory而不是“/ sdcard /”,有问题

时间:2011-10-21 15:39:24

标签: android variables sd-card android-sdcard

我试图指向外部存储,即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,但是当我尝试使用外部变量时,它只会将文件输出一次,这就是它。

0 个答案:

没有答案