2011-10-12 8 views
0
나는 FileNotFoundException이/IOException가 점점 계속

,사용자 정의 컨텐츠 제공자 - 이미지 저장

File directory = new File(Environment.getExternalStorageDirectory() 
      .toString() 
      + "/Android/data/<package>"); 

    if (!directory.exists()) { 
     boolean x = directory.mkdirs(); 
     Log.d(TAG, "directory: " + x); 
    } 

    File path = new File(directory.getPath() , uri.getEncodedPath()); 


    int imode = 0; 
    if (mode.contains("w")) { 
     imode |= ParcelFileDescriptor.MODE_READ_WRITE; 
     if (!path.exists()) { 

      try { 

      path.createNewFile(); 



      } catch (IOException e) { 

       e.printStackTrace(); 
       Log.d(TAG, "Error " + e.getMessage()); 

      } 
     } 
    } 
    if (mode.contains("r")) 
     imode |= ParcelFileDescriptor.MODE_READ_ONLY; 
    if (mode.contains("+")) 
     imode |= ParcelFileDescriptor.MODE_APPEND; 

    return ParcelFileDescriptor.open(path, imode); 

예외가

10 ~ 12 15

10-12 15:01:10.360: WARN/System.err(18679): java.io.IOException: No such file or directory 
입니다 : 01 : 10.360은 (/ System.err에 경고 18679) : java.io.File.createNewFileImpl (네이티브 메소드) 10-12 15 : 01 : 10.360 : WARN/System.err (18679) : java.io.File.createNewFile (File.java:1115) 10-12 15 : 01 : 10.360 : WARN/System.err (18679) : com.hair.android.camera.ImageContentProvider.openFile (ImageContentProvider. Java : 230) 10-12 15 : 01 : 10.360 : WARN/System.err (18679) : android.content.ContentProvider.openAssetFile (ContentProvider.java:726) 10-12 15 : 01 : 10.360 : WARN/System.err (18679) : android.content.ContentProvider $ Transport.openAssetFile (ContentProvider.java:247) 10-12 15 : 01 : 10.360 : WARN/System.err (18679) : android.content.ContentResolver. (18679) : android.content.ContentResolver.openOutputStream (ContentResolver.java:402) 10-12 15:01 : 10.360 : WARN/System.err (18679) : android.content.ContentResolver.openOutputStream (ContentResolver.java:378) 10-12 15 : 01 : 10.360 : WARN/System.err (18679) : com.hair. android.HairAppActivity.onActivityResult (HairAppActivity.java:428) 10-12 15 : 01 : 10.3 60 : WARN/System.err (18679) : android.app.Activity.dispatchActivityResult (Activity.java:4541) 10-12 15 : 01 : 10.360 : WARN/System.err (18679) : android.app. (18679) : android.app.ActivityThread.handleSendResult (ActivityThread.java:2787) 10-12 15 : 15 : 01 : 10.360 : WARN/System.err (18679) : android.app.ActivityThread.access $ 2000 (ActivityThread.java:122) 10-12 15 : 01 : 10.360 : WARN/System.err (18679) : android .app.ActivityThread $ H.handleMessage (ActivityThread.java:1032) 10-12 15 : 01 : 10.360 : WARN/System.err (18679) : android.os.Handler.dispatchMessage (Handler.java:99) 10-12 15 : 01 : 10.360 : WARN/System.err (18679) : android.os.Looper.loop (Looper.java:132) 10-12 15 : 01 : 10.360 : WARN/Syst em.err (18679) : android.app.ActivityThread.main (ActivityThread.java:4025) 10-12 15 : 01 : 10.360 : WARN/System.err (18679) : java.lang.reflect.Method. invokeNative (네이티브 메소드) 10-12 15 : 01 : 10.360 : WARN/System.err (18679) : java.lang.reflect.Method.invoke (Method.java:491) 10-12 15 : 01 : 10.360 : WARN/System.err (18679) : com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:841) 10-12 15 : 01 : 10.360 : WARN/System.err (18679) : com.android.internal.os.ZygoteInit.main (ZygoteInit.java:599) 10-12 15 : 01 : 10.360 : WARN/System.err (18679) : at dalvik.system.NativeStart.main (네이티브 메서드)

어떻게 해결할 수 있을까요? 사전에 감사

답변

0
new File(Environment.getExternalStorageDirectory() 
      .toString() 

그건 정확하지 -. Environment.getExternalStorageDirectory() getAbsolutePath()

+0

시도 귀하의 제안 사용 -. 새로운 파일 (Environment.getExternalStorageDirectory() getAbsolutePath() + ... 같은 문제. 누구든지 실제 예제가 있습니까? – William

+0

이 코드를 사용해보십시오. http://www.stealthcopter.com/blog/2010/01/android-saving-a-sound-file-to-sd-from-resource-and-setting-as -ringtone/다음 Uri.fromFile (new File (Environment.getExternalStorageDirectory(), "your_file_name"))))을 사용하십시오. – Yahor10

관련 문제