2011-11-12 6 views
1

안드로이드 개발에 새로운 것이므로 쉬운 일이라면 용서해주세요.디렉토리의 파일을 나열하는 방법은 무엇입니까?

나는 SD 카드의 디렉토리에있는 모든 파일을 가져 와서 회 전자에 표시하고 싶지만 어떻게 작동하는지 알 수 없습니다. 이것은 내가 가지고있는 것이고 심지어 그 중 어떤 것이 좋을지라도 나는 모른다.

//creates this directory if its not there??  
File sd = new File("/sdcard/myfolder"); 

       //gets a list of the files 
       File[] sdDirList = sd.listFiles(); 

       //add them to the spinner array (this makes it crash) 
       for(int i=0;i<sdDirList.length;i++) 
       array_spinnerLoad[i] = sdDirList[i].getName(); 

그래서 나는 어디로 가고 있습니까? 어디에서든 사용하기 쉬운 튜토리얼에 유용한 링크가 있습니까? 그것은이와 충돌 나던하지만, 회 전자의 배열이

을 작성되지
File[] sdDirList = sd.listFiles(); 
      if (sdDirList != null) 
      { 
       array_spinnerLoad=new String[sdDirList.length]; 

      for(int i=0;i<sdDirList.length;i++) 

      array_spinnerLoad[i] = sdDirList[i].getName(); 
     } 
+1

작은 팁 * (여기에 문제가있는 경우 확실하지 않음) 일반적으로 SD 카드와 같은 경로는 하드 코딩하지 마십시오. 다른 경로가 다른 장치에서 달라지기 때문입니다. ['Environment.getExternalStorageDirectory()'] (http://developer.android.com/reference/android/os/Environment.html#getExternalStorageDirectory())를 대신 사용하십시오. 모든 장치의 기본 대용량 저장 장치에 대한 유효한 경로를 반환합니다. –

+0

넵 (null pointer) 예외 – user1033558

답변

4

:

당신 :

편집 감사에서 내가 선택할 수있는 스피너, 그냥 목록 될 필요가 나던 /sdcard/myfolder이 없거나 디렉토리가 아닌 경우 listFilesnull을 반환합니다. 네가 NPE로 무너질거야. exists()isDirectory()을 사용하여 무엇이 잘못되었는지 진단 할 수 있습니다. (또한, sdDirList != null을 테스트 할 수 있습니다.)

P.S. 예외와 같이 충돌에 대한 세부 정보를 게시하는 데 더 정확한 답변을 얻는 데 도움이됩니다.

+0

감사합니다. logcat은이 줄을 말합니다 array_spinnerLoad [i] = sdDirList [i] .getName(); nullpointerexeption을 생성합니다 – user1033558

+0

@ user1033558 -'sdDirList'가'null' 인 경우 발생합니다 - 존재하지 않는 배열의 첫 번째 요소에 액세스하려고합니다. ('sdDirList'가 첫 번째 요소로'null'을 가졌지 만'listFiles'가 배열에'null' 값을 반환하지 않을 때도 발생합니다.) –

+0

감사합니다. ted, 수동으로 디렉토리에 파일을 넣었지만 아직 거기에 아무것도. 내가 튜토리얼을 필요로한다고 생각하지만 havnt는 내가 아직 이해하지 못하는 것을 발견했다. – user1033558

관련 문제