3

我想在 Java 应用程序中有某种文件浏览器,例如 Windows 资源管理器。

我只想要能够递归地列出文件夹内文件的东西。

有没有一种简单的方法可以做到这一点?

我已经尝试过使用 JFileChooser 但这不是我想要的。

4

3 回答 3

7

此代码段允许您以递归方式列出所有文件。您可以使用这些数据来填充 JTree,请参阅本教程

public class Filewalker { 

    public void walk( String path ) { 

        File root = new File( path ); 
        File[] list = root.listFiles(); 

        for ( File f : list ) { 
            if ( f.isDirectory() ) { 
                walk( f.getAbsolutePath() ); 
                System.err.println( "Dir:" + f.getAbsoluteFile() ); 
            } 
            else { 
                System.err.println( "File:" + f.getAbsoluteFile() ); 
            } 
        } 
    } 

    public static void main(String[] args) { 
        Filewalker fw = new Filewalker(); 
        fw.walk("c:\\" ); 
    } 
} 
于 2010-05-30T14:21:00.080 回答
3

也许这样的事情会帮助你(这是来自快速谷歌搜索,我不做 GUI,但觉得有义务提供帮助):

http://www.java2s.com/Code/Java/Swing-JFC/FileTreewithPopupMenu.htm

于 2010-05-30T14:29:08.173 回答
0

根据经验,java.awt.FileDialog提供更多的原生外观可能就足够了。这是一个示例,它还引用了一个更通用的组件,org.netbeans.swing.outline.Outline.

于 2010-05-30T16:36:22.097 回答