2017-01-19 6 views
0

Androidの内部ストレージにcache/images /内にimage.pngを入れたいと思います。Androidの内部キャッシュディレクトリ内にイメージファイルを作成する方法

私は次のコードでそれを持っていることはできませんよ。私も画像という名前のディレクトリを作成することはできませんよ上記のコードでは

File directory = new File(getContext().getCacheDir(), "images"); 
directory.mkdirs(); 


File mypath=new File(directory,"image.png"); 

FileOutputStream fos = null; 
try { 
    fos = new FileOutputStream(mypath); 

    bmap.compress(Bitmap.CompressFormat.PNG, 100, fos); 
} catch (Exception e) { 
    e.printStackTrace(); 
} finally { 
    try { 
     fos.close(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
}  

を。 Plsヘルプ、私は初心者です。

+0

あなたが許可を追加しましたか? – Jayanth

+0

マニフェストでを追加しました。しかし、私は内部ストレージがその許可を必要とするとは思わない。 – user1590595

+1

あなたはimagesという名前のディレクトリを作成できないと思いますか?あなたは例外を取得していますか? – ianhanniballake

答えて

1

これを試してみてください:

File sd = getCacheDir(); 
      File folder = new File(sd, "/myfolder/"); 
      if (!folder.exists()) { 
       if (!folder.mkdir()) { 
        Log.e("ERROR", "Cannot create a directory!"); 
       } else { 
        folder.mkdirs(); 
       } 
      } 

      File fileName = new File(folder,"mypic.jpg"); 

      try { 
         FileOutputStream outputStream = new FileOutputStream(String.valueOf(fileName)); 
         bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outputStream); 
         outputStream.close(); 

       } catch (FileNotFoundException e) { 
        e.printStackTrace(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
+0

それは働いた。ありがとう。私は「/両方」の時間がなかった。 – user1590595

+0

'Log.e(" ERROR "、"ディレクトリを作成できません! ")、'。存在しないディレクトリにファイルを作成しようとしても意味がないので、 'return;'文をそこに追加してください。 – greenapps

+0

'else { folder.mkdirs(); } '。 mkdirs()の戻り値もチェックする必要があります。そしてなぜあなたはmkdir()とmkdirs()を使用していますか? Mkdirs()だけで動作します。 – greenapps

関連する問題