【问题标题】:File explorer java文件资源管理器 java
【发布时间】:2010-05-30 14:11:39
【问题描述】:

我想在 Java 应用程序中安装某种文件浏览器,例如 Windows Explorer。

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

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

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

【问题讨论】:

    标签: java windows-explorer directory-listing


    【解决方案1】:

    这个 sn-p 允许您递归地列出所有文件。您可以使用这些数据来填充 JTree,请参阅 tutorial

    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:\\" ); 
        } 
    } 
    

    【讨论】:

    • +1 表示递归。您可能还喜欢我的回答中提到的 org.netbeans.swing.outline.Outline 中的示例。
    • 我不会做-1但是:有一个文件实例,然后你检查它是否是一个文件夹。如果是这样,您传递路径并创建一个新实例,而您可以只使用现有的实例。
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-30
        • 1970-01-01
        • 1970-01-01
        • 2011-09-01
        • 2015-09-10
        相关资源
        最近更新 更多