获取文件夹中的文件位置和文件名

时间:2014-08-19 05:38:25

标签: java file directory file-browser

我有一个根文件夹和一堆文件和文件夹。我想生成该根文件夹(和子文件夹)中的文件名列表,以及每个文件的位置。

我需要文件位置,因为我想向用户显示文件名列表,并让他在需要时打开文件。

我使用以下代码来获取文件名,但我对如何获取匹配的文件位置感到迷失。

public void listFilesForFolder(final File folder) {
    for (final File fileEntry : folder.listFiles()) {
        if (fileEntry.isDirectory()) {
            listFilesForFolder(fileEntry);
        } else {
            System.out.println(fileEntry.getName());
        }
    }
}

final File folder = new File("/home/you/Desktop");
listFilesForFolder(folder);

此外,现在,我使用数组列表来存储文件名。任何更好的方法/结构来完成这项工作也会有所帮助。

3 个答案:

答案 0 :(得分:1)

这就是我用的。效果很好。

  import java.io.File;

        public class Filewalker {

            public void walk( String path ) {

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

                if (list == null) return;

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

            public static void main(String[] args) {
                Filewalker fw = new Filewalker();
                fw.walk("c:\\" );
            }
        }

答案 1 :(得分:0)

您可以使用一些Tree数据结构。它是满足您需求的完美套件。

File是树的叶节点。文件夹是树的父级。叶子没有孩子。

答案 2 :(得分:0)

使用linkedhashmap存储名称和路径对。