에 다시 추가됩니다.JList에 파일을 재귀 적으로 추가하는 경우 - 마지막 폴더에있는 파일 만
저는 디렉토리를 반복적으로 검색하고 확장자를 검사하여 오디오 파일을 선택합니다. 일단 발견되면, 각각은 JList에 추가 될 것입니다 (메인 클래스에 있음 - 여기에 표시되지 않음). 그러나 마지막 폴더의 파일 만 목록에 추가됩니다.
public void List(String path) throws InterruptedException, IOException {
File root = new File(path);
File[] list = root.listFiles();
DefaultListModel lm = new DefaultListModel();
if (list == null) {
return;
}
for (File f : list) {
if (f.isDirectory()) {
List(f.getAbsolutePath());
} else if (f.isFile()) {
String outPath = f.getAbsolutePath();
try {
String ext = outPath.substring(outPath.lastIndexOf(".") + 1);
if (ext.equals("wma") || ext.equals("m4a") || ext.equals("mp3")) {
lm.addElement(f.getAbsolutePath());
}
} catch (Exception e) {
System.out.println(outPath + " is not a valid file!!!!!");
}
HomeScreen.Library.setModel(lm);
}
}
}
나는 간단한 System.out.println(f.getAbsolutePath)
으로 lm.addElement(f.getAbsolutePath())
를 교체 시도하고 예상대로 모든 파일이 인쇄되어 있습니다 : 여기에 코드입니다. 나는 또한 다른 영역으로 HomeScreen.Library.setModel(lm);
을 움직이려고 시도했지만 그 결과 일반적으로 아무 것도 목록에 전혀 추가되지 않습니다.
필자는 필연적으로 새로운 폴더가 발견 될 때마다 목록 모델이 다시 설정되고 파일이 이제 빈 모델에 추가된다는 사실을 알고 있습니다.
이 방법이 있습니까? 이 명백한 리셋 결과로 내 코드에서 뭔가를하고있는 건가요? 사전에
많은 감사,
가이
실행 가능한 코드 샘플을 사용하여 질문에 쉽게 대답 할 수 있습니다. 자신의 문제를 나타내는 [최소 예제] (http://stackoverflow.com/help/mcve)로 코드를 게시하십시오. –