2012-03-05 3 views
0

"subsDir"이라는 자산 서브 디렉토리에 들어있는 파일을 나열하고 다음 코드를 사용하고 싶습니다. 그러나 dirFrom = ""(empty)로 설정하면 모든 폴더가 자산에 올바르게 나열됩니다. 그러나 dirFrom = "/ subDir /"의 경우 작동하지 않습니다. 나는 이미 "subDir /"과 같은 결과를 시도했다. 매니페스트에서 권한을 신고해야합니까? 고맙습니다.자산 목록에있는 android 권한 서브 디렉토리 파일

private void copyFiles(String dirFrom, String dirTo) throws IOException { 

    AssetManager am = getAssets(); 

    String fileList[] = am.list(dirFrom); 

     if (fileList != null) 
     { 
      for (int i = 0;i<fileList.length;i++) 
      { 
       Log.d("",fileList[i]); 
      } 
     } 

}  
+0

끝에는'/'가 없어야합니다. 'subdir' 만 해봤습니까? – zapl

+0

구문 오류! 감사! 의견을 확인할 수 없습니다. 답변으로 게시하십시오. – Jaume

답변

1

AssetManager.list(String)은 "자산 내 상대 경로"를 사용합니다.

Android/Java는 일반적으로 경로에 '/'이 없기를 기대합니다.

또한 "상대적"은 처음에는 '/'이 없어야 함을 의미합니다. 그렇지 않으면 파일 시스템의 루트에있는 경로 일 수 있습니다.

"subDir" 또는 "subDir/subsubDir"을 사용하면됩니다.

0

zapl's 대답은 사실,하지만 추가 정보입니다 :

InputStream in = assetManager.open("subDir/"+filename); 

이 뭔가했다 : 당신은 예를 들어 SD 카드에 파일을 복사 할 경우, 당신은 슬래시로 귀하의 InputStream를 선언해야 하위 폴더에서 파일 복사가 발생했습니다. 내 원래 계획은 자산 폴더에서 직접 파일을 복사하는 것이었지만, 약간의 IOException을 주었다. 자산 폴더 안에 "웹킷", "사운드", "이미지"및 내가 기억할 수없는 다른 디렉토리가 있었지만 ... 나는 그들을 보지 못했습니다. 이것은 내가 이해할 수없는 안드로이드 내부 일 것임에 틀림 없다. 하지만 이걸 없애기 위해 내 파일을 하위 폴더에 넣었습니다. 나는 그것이 오래된 쓰레드라는 것을 알고 있지만, 유사한 문제를 가진 다른 사람들을 돕기 위해이 정보를이 쓰레드에 넣었다.

관련 문제