0

私は次のようなコードを持っています:

String state = Environment.getExternalStorageState();
    if (Environment.MEDIA_MOUNTED.equals(state)) {
        //create name based on time? just a simple link to photo
        //save to cache file
        File file = getExternalCacheDir();
        if (file != null) {
            try {
                String root = file.getAbsolutePath();
                File imageFile = new File(file, "m_images.jpeg");
                boolean tr = imageFile.mkdirs();
                FileOutputStream stream = new FileOutputStream(imageFile);
                boolean complete = image.compress(Bitmap.CompressFormat.PNG, 90, stream);
                if (!complete) {
                    Log.d("tag", "image doesn't saved");
                }
                Log.d("tag", "image saved");
            } catch (IOException e) {
                Log.d("tag", "Can't save image", e);
            }

しかし、FileOoutputStream を開くと、常に次の例外が発生します。

java.io.FileNotFoundException: /mnt/sdcard/Android/data/com.whatever/cache/m_images.jpeg (Is a directory)

この問題の原因はどこにあると言えますか? ファイルが作成されないのはなぜですか?

4

1 に答える 1

2

例外/mnt/sdcard/Android/data/com.whatever/cache/m_images.jpeg (Is a directory) は、それがディレクトリであることを意味します。行を削除するとうまく実行されますboolean tr = imageFile.mkdirs();

于 2012-07-22T14:49:43.187 に答える