今天我接着来介绍File类中访问目录中每一个子项的方法
基础语法
首先我们先来判断文件或者目录是否存在
1、boolean isFile()
判断当前File对象表示的是否为一个实际存在的文件
2、boolean isDirectory()
判断当前File对象表示的是否为一个实际存在的目录(文件夹)
3、File[ ] listFiles()
获取当前File对象表示的目录中的所有子项.
返回一个File数组,数组中每个元素(一个File对象)表示该目录 中的一个子项
//访问当前目录中的所有子项
File file = new File(".");
if (file.isDirectory()) {
File[] file1 = file.listFiles();
for (File file2 : file1) {
System.out.println(file2);
}
}
代码实例
public static void main(String[] args) throws IOException {
File file = new File("./demo.txt");
file.createNewFile();
//获取当前目录下的所有文本文件(txt)
File dir = new File(".");
if (dir.isDirectory()) {
FileFilter fileFilter = f -> f.getName().endsWith("txt");
File[] files = dir.listFiles(fileFilter);
for (File f : files) {
System.out.println(f);
}
}
}
实践代码
获取当前项目目录下所有名字以"."开始的目录
public static void main(String[] args) {
File dir = new File(".");
if (dir.isDirectory()) {
File[] file = dir.listFiles(f -> f.getName().startsWith("."));
for(File f:file){
System.out.println(f);
}
}
}
查找文件目录下的文件
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入你要查找的目录");
String name = scanner.nextLine();
File dir = new File(name);
if (dir.isDirectory()) {
System.out.println("请输入你要查找的文件后缀");
String ext = scanner.nextLine();
File[] files = dir.listFiles(f -> f.getName().endsWith(ext));
for(File s:files){
System.out.println(s.getName());
}
} else {
System.out.println("不是一个目录.或者目录不存在");
}
}