Java如何获取目录的内容?
在此示例中,您将看到如何读取目录中的文件列表。要获得此功能,我们可以使用File.listFiles()方法。此方法返回一个File对象数组,该对象可以是文件实例或目录。
package org.nhooo.example.io; import java.io.File; import java.io.FilenameFilter; public class DirectoryContentExample { public static void main(String[] args) { File gamesDir = new File("D:/Games"); //获取上面指定目录下的文件列表 //并将其作为抽象文件对象返回。 File[] files = gamesDir.listFiles(); if (files != null) { //迭代游戏目录目录的内容,打印 //并检查它是目录还是目录 //文件。 for (File file : files) { System.out.println(file + " is a " + (file.isDirectory() ? "directory" : "file")); } } //在这里,我们还获取目录中的文件列表,但是 //以String数组形式返回。 String[] strings = gamesDir.list(); if (strings != null) { for (String file : strings) { System.out.println("File = " + file); } } //现在我们要在目录中列出文件,但是我们 //只想要一个扩展名为.doc的文件。为此,我们 //首先创建一个FilenameFilter,它将被赋予 //listFiles()方法以筛选列表过程。 //过滤规则在accept()中实现 //FilenameFilter接口的方法。 FilenameFilter filter = new FilenameFilter() { public boolean accept(File dir, String name) { return name.endsWith(".docx"); } }; //在您的目录中,只给我一个.doc文件。 File[] docs = gamesDir.listFiles(filter); if (docs != null) { for (File doc : docs) { System.out.println("Doc file = " + doc); } } } }
这是程序的结果:
该File[]数组返回:
D:\Games\AOE is a directory D:\Games\Championship Manager 2017 is a directory D:\Games\GameHouse is a directory D:\Games\Sierra is a directory D:\Games\testing.doc.docx is a file D:\Games\TTD is a directory </pre> The `String[]` array returned: <pre> File = AOE File = Championship Manager 2017 File = GameHouse File = Sierra File = testing.docx File = TTD
File[]使用FilenameFilter结果的数组:
Doc file = D:\Games\testing.docx