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 directoryD:\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
以上是 Java如何获取目录的内容? 的全部内容, 来源链接: utcz.com/z/330746.html