在目录中构建文件数组

时间:2011-03-10 12:55:05

标签: java arrays file

这是如何在Java中完成的?我希望创建一个在程序中输出的fileNames数组,这些文件将是我主目录中的文件。

到目前为止,我有:

File[] fileList = new File(user.home).listFiles()

这就是我需要的吗?

然后,要打印出这些文件,我可以这样做:

int i = 0;
while (fileList.getNext() != null) {
System.out.println(filelist[i]
i++
}

非常感谢。

5 个答案:

答案 0 :(得分:4)

看起来你是对的。我把你的代码整理得更干净了。

File[] fileList = new File(System.getProperty("user.home")).listFiles();
        for (int i=0;i < fileList.length;i++) {
            System.out.println(fileList[i]);
        }

答案 1 :(得分:3)

或多或少是的,但如果只需要文件名,则需要检查该文件是否是文件而不是目录。

public static String[] fileNames(String directoryPath) {

    File dir = new File(directoryPath);

    Collection<String> files  =new ArrayList<String>();

    if(dir.isDirectory()){
        File[] listFiles = dir.listFiles();

        for(File file : listFiles){
            if(file.isFile()) {
                files.add(file.getName());
            }
        }
    }

    return files.toArray(new String[]{});
}

答案 2 :(得分:1)

是的,这就是我们如何从本地目录获取文件列表。请注意,listFiles()还将包含目录。因此,如果您只对文件感兴趣,那么您必须在每个文件上检查isFile()。如果您有兴趣获得选择性文件用户FileFilter。

答案 3 :(得分:0)

您应该将文件列表更改为此

File[] fileList = new File(System.getProperty("user.home")).listFiles();

答案 4 :(得分:0)

这是构建主目录中存在的文件数组的最简单方法。使用循环,您可以非常轻松地获取所有文件的名称。这是代码:

  // Building array of files.
    File folder = new File(System.getProperty("user.home"));
    File[] listOfFiles = folder.listFiles();

  // Iterating array of files for printing name of all files present in the directory.
    for (int i = 0; i < listOfFiles.length; i++) {
        System.out.println("File Name: " +listOfFiles[i]);
    }