Java编译错误 - 没有合适的构造函数

问题描述 投票:0回答:3

我是Java游戏的新手,我试图让用户选择一个目录,并以递归方式搜索和打印所述目录的内容。

我的代码给了我错误:

找不到合适的文件(文件)构造函数

在这条线上

File[] files = new File(chooser.getSelectedFile()).listFiles();

这里有人会成为一个宝石,并帮助我找到实现我想要的结果的正确语法吗?这是我的完整代码:

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                
    chooser = new JFileChooser(); 
    chooser.setCurrentDirectory(new java.io.File("."));
    chooser.setDialogTitle(choosertitle);
    chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
    // disable the "All files" option.
    chooser.setAcceptAllFileFilterUsed(false);
    //    
    if (chooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) { 
        File[] files = new File(chooser.getSelectedFile()).listFiles();
    } else { System.out.println("No Selection "); }
}                                        


public static void showFiles(File[] files) {
    for (File file : files) {
        if (file.isDirectory()) {
            System.out.println("Directory: " + file.getName());
            showFiles(file.listFiles()); 
        } else {
            System.out.println("File: " + file.getName());
        }
    }
}
/**
 * @param args the command line arguments
 */
public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new Find().setVisible(true);
        }
    });
}
java netbeans
3个回答
3
投票

chooser.getSelectedFile()已经返回File,所以你可以直接在其返回值上调用listFiles()

File[] files = chooser.getSelectedFile().listFiles();

0
投票

不确定是什么chooser.getSelectedFile()。listFiles()正在返回,但这可能有用

File[] files = chooser.getSelectedFile().listFiles();

0
投票

chooser.getSelectedFile()返回一个文件对象(https://docs.oracle.com/javase/7/docs/api/javax/swing/JFileChooser.html#getSelectedFile())。您已经获得了一个文件对象。不需要将它作为参数传递给File构造函数(这样的构造函数不存在(https://docs.oracle.com/javase/7/docs/api/java/io/File.html))。

listFiles()方法列出了目录的所有文件(该目录是您调用该方法的对象)(参见:https://docs.oracle.com/javase/7/docs/api/java/io/File.html#listFiles()

我想你的意思应该是:chooser.getSelectedFile().listFiles()

© www.soinside.com 2019 - 2024. All rights reserved.