一.前言
今天整理电脑文件时,发现了以前学习IO流时写的一个控制台java程序,回想起来还挺有意思的,主要实现就是判断用户输入的指定目录中,是否有指定前缀或后缀的文件。比如,你想知道D盘“视频资料“文件夹下是否有pdf格式的文件(即后缀为.pdf),或者D盘“视频资料“文件夹下是否有以”Java“开头的文件(即以Java为前缀的文件,不是文件夹),如果有就输出所有文件的名字。与我们在Windows文件管理器的搜索框里输入关键字搜自己需要找的文件这种功能类似,不过我写的没那么nb。听上去挺简单的,实际也很简单,但对于当初的我,可以说是备受鼓舞,毕竟我们都知道"万丈高楼平地起,盘龙卧虎高山齐"这个道理。首先我会给出运行结果,最后贴出代码。
二.运行效果
1.D盘“视频资料”中的所有文件截图
2.判断D盘"视频资料"目录下是否有以“Java”为前缀的文件的运行结果
3.判断D盘"视频资料"目录下是否有以“.pdf”为后缀的文件的运行结果
三.代码相关
整体如下,当时我写了四个方法
完整代码如下:
import java.io.File;
import java.util.Scanner;
public class FilePanduan {
public static void main(String[] args) {
//创建键盘输入对象
System.out.println("****Thank you for using the easy program of djc*****");
System.out.println("------------使用界面-------------");
Scanner sc = new Scanner(System.in);
System.out.println("请选择0/1来选择判断方式,1代表后缀吗,0代表前缀:");
int a = sc.nextInt();
//功能实现
choose(a);
System.out.println("---*****---Thank you for using--******-------");
}
private static void choose(int a) {
Scanner sc2 = new Scanner(System.in);
System.out.println("请输入您要判断的目录(eg:D:\\):");
String s = sc2.nextLine();
switch (a) {
case 0:
System.out.println("您选择是通过前缀判断?Y/N");
Scanner ccs = new Scanner(System.in);
String saa = ccs.nextLine();
if (saa.equals("Y")) {
// 封装e判断目录
System.out.println("-----前缀判断界面----");
File file = new File(s);
panduan(file);
break;
}
case 1:
System.out.println("您选择是通过后缀判断?Y/N");
Scanner cs = new Scanner(System.in);
String sa = cs.nextLine();
if (sa.equals("Y")) {
// 封装e判断目录
System.out.println("-----后缀判断界面----");
File file2 = new File(s);
panduan2(file2);
break;
} else
System.out.println("您已经退出了程序!");
default:
break;
}
}
private static void panduan2(File file2) {
System.out.println("请输入您要判断的后缀格式!!!");
Scanner sc1 = new Scanner(System.in);
String s = sc1.nextLine();
//获取该目录下所有文件或者文件夹的File数组
File[] fileArray = file2.listFiles();
// 遍历该File数组,得到每一个File对象,然后判断
System.out.println("------------查询结果如下--------------");
System.out.println("此次查询到的文件有:");
for (File f : fileArray) {
// 是否是文件
if (f.isFile()) {
// 继续判断是否以s结尾
if (f.getName().endsWith(s)) {
System.out.println(f.getName());
}
}
}
}
private static void panduan(File file) {
System.out.println("请输入您要判断的前缀格式!!!");
Scanner sc3 = new Scanner(System.in);
String ss = sc3.nextLine();
//获取该目录下所有文件或者文件夹的File数组
File[] fileArray = file.listFiles();
// 遍历该File数组,得到每一个File对象,然后判断
System.out.println("*******-----------查询结果如下----********--------");
System.out.println("此次查询到的文件有:");
for (File f : fileArray) {
// 是否是文件
if (f.isFile()) {
// 继续判断是否以s前缀
if (f.getName().startsWith(ss)) {
System.out.println(f.getName());
}
}
}
}
}