2010-07-10 3 views
1

Android 2.1 개발 중. 아무도 내게 다음 코드가 IOException을 생성하고 파일을로드하지 않는 이유를 설명 할 수 있습니까? 이 정확한 코드가 작동하는 데 사용되며, 내가 말할 수있는 한, 여전히 작동해야합니다. 참고로 Log.d() 명령은 예상 한 모든 파일을 올바르게 나열하고 파일이 내 .APK 파일로 올바르게 압축됩니다.Android AssetManager/InputStream 예외

 AssetManager assetManager = mContext.getAssets(); 
     String[] files = null; 
     try 
      { 
      files = assetManager.list("meshes"); 
      for (int i = 0; i < files.length; i++) 
       Log.d(TAG, files[i]); 
      InputStream is = assetManager.open(files[0]); 
      } 
     catch (IOException e) 
      { 
      Log.e(TAG, "Could not load '" + e.getMessage()+ "'!"); 
      } 

왜 지금 깨는 이유가 있습니까? 내가 읽으려고하는 파일은 아주 작은 (2 바이트) 바이너리입니다.

답변

2

마지막으로 알아 냈습니다. 뻔뻔스런 사용자 오류이지만 나무 숲을 볼 수 없었습니다. list 명령은 디렉토리 이름을 포함하지 않으며, open 명령은 전체 경로 이름을 필요로합니다. Duh :) 열기 명령은 디렉토리 이름과 파일 이름을 모두 포함하는 문자열을 작성해야합니다.

+0

처럼 사용할 수 있습니다. – Cristian

1

어쩌면 당신은 당신이 아니라 정답을 표시 해주고, 그래서이

AssetManager assetManager = this.getAssets(); 
    try{ 
      InputStream is = assetManager.open("tes.png"); 

      Log.d("Success", "Read"); 
    }catch (IOException e){ 
      Log.e("Failed", "Could not load '" + e.getMessage()+ "'!"); 
    }