4
sdCard에 저장된 모든 파일을 찾고 싶습니다. 이 코드를 사용 :sd 카드의 모든 파일 찾기
List<File> dir = new ArrayList<File>();
List<File> files = new ArrayList<File>();
File root = new File (Environment.getExternalStorageDirectory().getAbsolutePath());
scan(root); // find root directories
for (File f : dir) { // find in root...
scan(f);
}
Log.i("files", "" + files.size());
Log.i("dir", "" + dir.size());
}
public void scan (File path) {
for (File f : path.listFiles()) {
if (f.isFile()) {
files.add(f);
}
else {
dir.add(f);
}
}
}
를 그러나 나는이 예외에 문제가있다 "java.util.ConcurrentModificationException" 나는 목록 (DIR) 및 루프 변경합니다. ListIterator가 도움이되지 않습니다.
쓰기 : java.lang.NullPointerException. null이 어디인지 찾으십시오. – Alex
루트 디렉토리를 찾으려면 // ... 코드에서 편집 된 버전에 코드를 추가해야합니다. rootDirs를 빈 목록으로 선언 한 다음 (File f : root.listFiles()) {if (f.isDirectory()) rootDirs.add (f); } – Fishbreath
다른 폴더와 그 안에있는 파일들과 함께 폴더 "tree"와 같은 첫 번째 디렉토리 (/ sdcard가 아님)를 설정하면 어떻게됩니까? 그러나 루트가 "/ sdcard"이면 그는 약 3 개의 폴더와 "dead inside"를 찾습니다. NullPointerException를 작성합니다. 문제를 찾아보십시오. 나중에 씁니다. 감사합니다 .... – Alex