2011-03-04 2 views
2

메신저 sdCard에 데이터를 저장하려고합니다. getExternalFilesDir을 사용하여 externalStorage의 앱 디렉토리에서 개인적으로 저장하려고했지만 나에게 nullPointerException을주었습니다.이미지를 sdcard에 저장 안드로이드 디렉토리 문제

FileOutputStream os; 
dirName = "/mydirectory/"; 
     try { 
      if (android.os.Environment.getExternalStorageState().equals(
        android.os.Environment.MEDIA_MOUNTED)){ 
       File sdCard = Environment.getExternalStorageDirectory(); 
       File dir = new File (sdCard.getAbsolutePath() + dirName); 
       dir.mkdirs(); 
       //File file = new File(this.getExternalFilesDir(null), this.dirName+fileName); //this function give null pointer exception so im using other one 
       File file = new File(dir, dirName+fileName); 
       os = new FileOutputStream(file); 
      }else{ 
       os = context.openFileOutput(fileName, MODE_PRIVATE); 
      } 
      resizedBitmap.compress(CompressFormat.PNG, 100, os); 
      os.flush(); 
      os.close(); 
     }catch(Exception e){ 

     } 

오류 로그 :

java.io.FileNotFoundException : /mnt/sdcard/mvc/mvc/myfile2.png 내가 원하는 사용자 정의 디렉토리에 파일을 저장은 나에게 오류를주고 자신을 명명하기 (그런 파일이나 디렉토리가 없음)

+0

전달중인 매개 변수를 모든 파일 및 디렉토리 호출에 기록하십시오. 아마도 자신이 생각하는대로하지 않을 것입니다. 또한 모든 반환 값을 확인하여 작동하지 않는지 확인합니다. –

+0

전체 스택 트레이스를 보유하고 있습니까? – thoredge

답변

8

디렉토리 "/ MNT이/SDCARD/MVC/MVC"존재하지 않을 수 /sdcard에 장착 알고있다. 경로를 변경하여 이미지를 Environment.getExternalStorageDirectory() 경로에 저장 한 다음 거기에서 작업하는 것은 어떻습니까?

Robert가 지적했듯이 매니페스트에 write permission to external storage이 있는지 확인하십시오.

편집 - 작성하는 디렉토리 :

String root = Environment.getExternalStorageDirectory().toString(); 
new File(root + "/mvc/mvc").mkdirs(); 

는 그런 다음 root + "/mvc/mvc/foo.png"에 파일을 저장할 수 있습니다.

+0

위와 같이 루트에 직접 저장할 때 위와 같이 작동하지만 디렉토리를 만들고 이름을 지정하려고합니다. 그것 "이미지"와 그것에 이미지를 저장 – user606669

+0

내가 디렉토리를 만드는 방법에 대한 정보를 추가했습니다 –

+0

큰 일을 .. 감사 – user606669

0

앱에 필요한 권한 을 추가했는지 확인해야합니다. 이 권한이 없으면 SD 카드의 아무 것도 액세스 할 수 없습니다.

은 BTW : 안드로이드 시스템에 나는 SD 카드가없는 /mnt/sdcard

+0

그래, 내가 권한을 포함하고 내가/mnt/sdcard/보여줍니다 파일 탐색기 (ddms)를 확인했지만 문제가 동일합니다. 하지만 지금 내 오류가이 파일을 내 파일을 변경할 때 파일 = 새 파일 (dir, dirName); – user606669

+0

Error : java.io.FileNotFoundException : /mnt/sdcard/mydirectory/myfile2.png – user606669

5

SD 카드에 쓰기 권한이 필요하십니까? 응용 프로그램 매니페스트 당신에게 다음과 같은 문자열을 추가 : "프로 안드로이드 미디어 : 그래픽, 음악, 비디오 및 스마트 폰 및 정제를위한 리치 미디어 앱 개발"

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
0

내가 매우 도움이 될이 책을 발견했다. SD 카드에 이미지와 물건을 저장할 수있는 부분을 발견했습니다.

+0

글쎄, 만약 당신이 나에게 샘플 페이지를 보냈다면, 좋을 것이다. 감사합니다. 내 프로필에서 내 이메일 주소를 찾을 수 있습니다. – user606669

+0

프로필에 이메일 주소가 없습니다. 너는 내 것을 볼 수 있다면 나에게 메시지를 보내라. 나는 대답 할 것이다! :) – Stephen

관련 문제