如果我将路径放到我的CD驱动器上,它会按原样列出所有文件和文件夹,但如果我将路径放到硬盘驱动程序分区,则会出现NullPointerException。有人可以帮我弄这个吗。我无法理解这一点。 CD文件夹结构和分区结构有什么不同O.o System.out.print适用于CD和HDD分区。这是一个代码:
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);
}
}
}
答案 0 :(得分:0)
是的问题是在Windows文件夹权限。这解决了一些问题:
if ( f.isDirectory() && !f.getName().equals("$RECYCLE.BIN") && !f.getName().equals("System Volume Information") &&
!f.getName().equals("$Recycle.Bin") && !f.getName().equals("Config.Msi"))
但是还有更多无法访问的锁定文件。