File更应该叫做文件路径,或者文件夹路径
package day18;
import java.io.File;
import java.io.FilenameFilter;
public class Dk8File {
//判断F盘目录下是否有后缀名.jpg的文件,如果有就输出该文件名称
public static void main(String[] args) {
File dir = new File("F:\\照片\\平潭");
//用list()做
String[] list = dir.list(); //获取文件名字
for (String s : list) {
if (s.endsWith(".jpg")) {
System.out.println(s);
}
}
//用listFiles()做-常用
File[] subFiles = dir.listFiles();
for (File file : subFiles) {
if (file.isFile() && file.getName().endsWith(".jpg")) {
System.out.println(file);
}
}
//用过滤器
String[] arr = dir.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
File file = new File(dir,name);
return file.isFile() && file.getName().endsWith(".jpg");
}
});
for (String s : arr) {
System.out.println(s);
}
}
}
package day18;
import java.io.File;
import java.util.Scanner;
public class Dk9DiGuiJava {
//递归获取多级目录下的.java文件
public static void main(String[] args) {
File dir = getDir();
print(dir);
}
//获取文件夹路径
public static File getDir() {
Scanner input = new Scanner(System.in);
System.out.println("请输入文件夹路径");
while (true) {
String line = input.nextLine();
File dir = new File(line);
if(!dir.exists()) {
System.out.println("请输入路径");
}else if (dir.isFile()) {
System.out.println("你输入的是文件路径,不是文件夹");
}else {
return dir;
}
}
}
//递归打印一个文件夹路径下的所有.java文件
public static void print(File dir) {
File[] subfiles = dir.listFiles(); //获取dir路径下的所有文件和文件夹
for (File file : subfiles) {
if (file.isFile() && file.getName().endsWith(".java")) {
System.out.println(file);
}else if (file.isDirectory()) {
print(file);
}
}
}
}