File sdcard = Environment.getExternalStorageDirectory();
File imgDir = new File(sdcard, "/appname/img");
if (!imgDir.exists()) {
imgDir.mkdirs();
}
File filepath = new File(imgDir, String.valueOf(System.currentTimeMillis()) + ".jpg");
final FileOutputStream filestream = new FileOutputStream(filepath);
bitmap.compress(CompressFormat.JPEG, 0, filestream);
위와 같이 비트맵 이미지를 sdcard/appname/img/시간.jpg
이렇게 저장 하고자 하는데....
자꾸 java.io.FileNotFoundException: /sdcard/appname/img/1305686363200.jpg
이렇게 에러가 뜨네요... 검색을 좀해봤는데 퍼미션에
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
요 두개는 주었어요..... 뭐가 문제일까요...?
확인 해보니 imgDir.mkdirs(); 를 호출 함에도 불구하고 탐색기로 확인 해보면
디렉토리가 생성되지 않네요.... 뭐 빼먹은게 있나요...? ㅠ_ㅠ
private void makeDIR()
{
String ess = Environment.getExternalStorageState();
String sdCardPath = null;
if(ess.equals(Environment.MEDIA_MOUNTED))
{
sdCardPath = Environment.getExternalStorageDirectory().getAbsolutePath();
Log.i("PATH", "First Folder : " + sdCardPath);
File dir = new File(sdCardPath , "디렉토리 이름");
if(dir.isDirectory())
{
Log.i("LOG", "I have this DIR!");
}
else
{
Log.i("LOG", "I don't have this DIR! " + dir.getPath());
if(dir.mkdirs() == true) Log.i("LOG", "Make Complete!");
else Log.i("LOG", "Make Failed!");
}
}
}
디렉토리 생성 함수입니다.
onCreate()에 넣어 보세요 ^^
퍼미션이 잘 추가 되어 있으니 잘 동작할겁니다.!




디렉토리가 제대로 생성이 되었나 한번 체크 해 보시죠.