0
내 CD 드라이브에 경로를 넣으면 모든 파일과 폴더를 나열해야하지만 하드 드라이버 파티션에 경로를 추가하면 NullPointerException이 발생합니다. 어떤 사람이 이것으로 나를 도울 수 있습니까? 나는 이것의 바닥에 도달 할 수 없다. CD 폴더 구조와 파티션 구조 사이에 다른 점 O.o System.out.print는 CD 및 HDD 파티션 모두에 대해 잘 작동합니다.JTree null 포인터 예외
import java.awt.Dimension;
import java.io.File;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreeModel;
/**
*
* @author Anak1n
*/
public class gui extends JPanel {
private final JTree tree;
TreeModel model;
JFileChooser chooser = new JFileChooser();
JButton load;
File fileRoot = new File("F:/");
DefaultMutableTreeNode root;
public gui() {
root = new DefaultMutableTreeNode();
getList(root, fileRoot);
tree = new JTree(root);
tree.setPreferredSize(new Dimension(300, 400));
tree.setRootVisible(false);
add(new JScrollPane((JTree) tree), "Center");
}
public void getList(DefaultMutableTreeNode node, File f) {
if (f.isDirectory()) {
System.out.println(f.getName());
DefaultMutableTreeNode child = new DefaultMutableTreeNode(f);
node.add(child);
File fList[] = f.listFiles();
for (File fList1 : fList) {
getList(child, fList1);
}
}
if (f.isFile()) {
DefaultMutableTreeNode child = new DefaultMutableTreeNode(f);
node.add(child);
}
}
}
대답은 아니지만 쉽게 접근 할 수없는 Windows "디렉토리"가 있다고 생각합니다. 따라서 listFiles 메소드는 null을 리턴합니다. 해당 디렉토리를 건너 뜁니다. – user3575404
당신 말이 맞아요. 나는 프로그램을 실행할 때 이것을 얻는다 : S-1-5-18. 내가 SECURITY_LOCAL_SYSTEM_RID \t S-1-5-18 – Anak1n