2017-01-19 5 views
0

안드로이드의 내부 저장 장치에 cache/images/안에 image.png를 갖고 싶습니다.안드로이드의 내부 캐시 디렉토리 안에 이미지 파일을 만드는 방법

나는 다음과 같은 코드를 가질 수 없습니다입니다 :

위의 코드와
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

왜 이미지라는 디렉토리를 만들 수 없다고 생각합니까? 예외가 있습니까? – 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