2014-10-06 1 views
0

Mkdir() 함수를 실행하는 데 문제가 있습니다. 어떻게해야합니까? 이미 읽기/쓰기 권한을 추가했습니다 :안드로이드에서 폴더를 mkdir 할 수 없습니다.

private File getTempFile(Context context) 
    { 

     File path; 
     //Find the dir to save cached images 
     if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)){ 

      path=new File(android.os.Environment.getExternalStorageDirectory(),"/Tanker/Foto/"); 
     } 
     else { 
      path=context.getCacheDir(); 
     } 
     String pictureFileName = Long.toHexString(System.currentTimeMillis())+".jpg"; 
     if (!path.exists()) 
     { 
      path.mkdir(); 
     } 
     return new File(path, pictureFileName); 
    } 

이 도와주세요 :

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

아래는 내 코드입니다.

+0

시도해보십시오. 'path.mkdirs();' –

답변

3
path=new File(android.os.Environment.getExternalStorageDirectory(),"/Tanker/Foto/"); 

mkdir은 전체 경로를 만들지 않습니다. 당신은 문서

에서 그

에 대한 mkdirs를 사용할 필요가있는 필요하지만 존재하지 않는 부모 디렉토리를 포함하여이 추상 패스에 의해 명명 된 디렉토리를 작성합니다.

if (!path.exists()) { 
     path.mkdirs(); 
    } 
+1

감사합니다. –

1

부모가 있다고 가정하고이 파일에 의해 명명 된 디렉토리를 만듭니다. 누락 된 부모를 만들고 싶다면 mkdirs()를 사용하십시오.

이 메서드는 실패하면 IOException을 throw하지 않습니다. 발신자는 반환 값을 확인해야합니다. 디렉토리가 이미 존재하는 경우,이 메소드는 false를 돌려줍니다. 반환 할 디렉토리가 있는지 여부를 알고 싶으면 (f.mkdir() || f.isDirectory()) 사용하거나 단순히이 메소드의 반환 값을 무시하고 단순히 isDirectory()를 호출하십시오. 반환

true if the directory was created, false on failure or if the directory already existed. 

확인 당신이 문제에 대한 적절한 이유를 얻을 수보다 수익 가치있는 전자.

관련 문제