Java - 如何获取文件夹中的所有文件名

时间:2012-08-09 23:34:27

标签: java file

我不是一个非常优秀的Java程序员,我需要知道如何打印出单个文件夹中的所有文件。请参阅以下代码:

for(int i=0;i<folder.number_of_files;i++){
System.out.println(filename[i]);
}

感谢您的时间

3 个答案:

答案 0 :(得分:8)

最简单的方法是使用File#listFiles。如果您使用的是Java 7,请参阅this以了解对文件I / O库的更改。例如,

File folder = ...;
for(File f : folder.listFiles())
{
    System.out.println(f.getName());
}

请注意,这不会获取folder目录中任何子文件夹的内容。

答案 1 :(得分:4)

 File file = new File("C:\\");  
 File[] files = file.listFiles();  
 for (File f:files)  
 {  
     System.out.println(f.getAbsolutePath());  
 }  

listFiles()有更多选择。请参阅文档here

答案 2 :(得分:3)

如果您还想检查下面的子文件夹,则运行递归并检查Desktop及其子文件夹下的所有文件并写入列表。

private static String lvl = "";
    static BufferedWriter bw;
    private static File source = new File("C:\\Users\\"+System.getProperty("user.name")+"\\Desktop\\New folder\\myTest.txt");

    public static void main(String[] args) throws IOException {




        bw = new BufferedWriter(new FileWriter(source));

        checkFiles(new File("C:\\Users\\"+System.getProperty("user.name")+"\\Desktop"), 0);


        bw.flush();
        bw.close();
        lvl = null;

    }
    static void checkFiles(File file, int level) throws IOException{

        if(!file.exists()){

            return;
        }

        for(String s:file.list()){

            if(new File(file.getPath() + "\\" +  s).isDirectory()){

                bw.newLine();
                bw.write(lvl + "Directory: " + s);

                lvl += " ";

                checkFiles(new File(file.getPath() + "\\" +  s), level+1);

            }else{

                bw.newLine();
                bw.write(lvl + "File: " + s);

            }
        }
    }
}