JavaScanDisk
Java扫描磁盘文件。默认C盘,遍历所有文件
通过File类实现杀毒软件的扫描功能
要求:
1、通过控制台输入获取需要扫描的目录
提示: 1、全盘扫描 2、指定目录扫描
如果选择1:执行c盘全盘扫描,在控制台打印出当时扫描的文件路径。
如果选择2:提示:请输入扫描路径,并且打印扫描路径
2、但扫描结束后提示:请选择操作:1、继续扫描 2、退出程序
如果选择1: 就回到第一不
如果选择2:就结束程序 System.exit(0);# JavaScanDisk
扫描类:
import java.io.File;
import java.util.Scanner;
/**
* @ClassName: Scan
* @Description: 扫描类
* @author LYL
* @date 2021-01-11 11:05:44
*/
public class Scan {
public void allScan(File f) {
// 将传入的File对象变成File数组
File[] lf = f.listFiles();
// 如果为空则结束这次方法。避免空指针异常
if (lf == null) {
return;
}
// 循环遍历lf中的每个File对象
for (File f1 : lf) {
// 如果当前遍历到的这个File对象是文件夹
if (f1.isDirectory()) {
// 得到当前文件夹的路径
String path = f1.getAbsolutePath();
// 重新调用当前方法,并传入刚刚遍历到的文件夹对象进去
allScan(new File(path));
// 如果当前File对象是一个文件
} else {
// 输出当前文件的名称
System.out.println(f1.getName());
// System.out.println(f1.getAbsolutePath());
}
}
}
/**
* @Description:判断是否继续扫描
* @author LYL
* @date 2021-01-11 13:08:24
*/
public void isContinue() {
System.out.println("请选择操作:1、继续扫描 2、退出程序");
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
//如果用户输入的是1
if (i == 1) {
//通过Main()方法判断是否重新扫描
Main main = new Main();
main.Main();
} else if (i == 2) {
//如果输入2则直接退出
System.exit(0);
} else {
//如果不按提示输入则抛出异常
throw new RuntimeException("请输入所提示的数据!");
}
sc.close();
}
}
用户交互类:
import java.io.File;
import java.util.Scanner;
class Main {
/**
* @Description: 用户交互
* @author LYL
* @date 2021-01-11 11:00:16
*/
public void Main() {
System.out.println("扫描全盘还是扫描指定路径?1、全盘 2、指定路径");
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
// 创建Scan对象,以便调用扫描的方法
Scan scan = new Scan();
if (i == 1) {
scan.allScan(new File("c:/"));
System.out.println("扫描结束");
} else if (i == 2) {
System.out.println("请输入指定路径:(格式:'c:/user/xxx')");
sc.nextLine();
String path = sc.nextLine();
// 将用户输入的路径放入一个新的File对象中
scan.allScan(new File(path));
System.out.println("扫描结束");
} else {
throw new RuntimeException("请输入所提示的数据!");
}
// 结束后判断是否继续
scan.isContinue();
}
}
测试类
public class Test {
/**
* @Description: 测试类
* @author LYL
* @date 2021-01-11 11:22:40
*/
public static void main(String[] args) {
Main main = new Main();
main.Main();
}
}