余姚网页设计公司怎么做神马搜索排名seo
题目如下
扫描指定目录,并找到名称中包含指定字符的所有普通文件(不包含目录),并且后续询问该用户是否要删除该文件
本题是关于文件I/O知识中对文件系统操作的应用,解答的完整代码如下(需要的uu自取)⬇️
在完整代码后博主将对代码进行拆分讲解
import java.io.File;
import java.util.Scanner;public class demo1 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);//输入指定目录System.out.println("请输入指定目录");String path = scanner.next();File file = new File(path);if(!file.isDirectory()){System.out.println("输入目录不合法");System.exit(1);}//输入指定字符System.out.println("请输入指定字符");String key = scanner.next();//开始进行扫描scan(file,key);}//扫描函数public static void scan(File file,String key){System.out.println("正在扫描"+file.getAbsolutePath());if(file == null){return;} else if(file.isDirectory()){File[] files = file.listFiles();for (File f : files ) {scan(f,key);}}else {if(file.getName().contains(key)){delete(file);}}}//删除操作public static void delete(File file){System.out.println("是否要删除文件?(y|n)");Scanner scanner = new Scanner(System.in);String choice = scanner.next();if(choice.equals("y")){file.delete();}else {System.out.println("未删除文件");}}
}
1、主方法
main()方法代码中,首先要让用户输入指定的目录和指定关键字
值得注意的是,在输入指定目录后,我们要对用户的输入进行合法性判断
if(!file.isDirectory()){System.out.println("输入目录不合法");System.exit(1);
}
2、scan方法
为了扫描文件夹及文件夹中的子文件夹, 我们需要采取递归思路。即如果子文件依然是文件夹,就仍用scan方法扫描;如果是文件,则判断文件名包不包含key关键字
如果文件名包含key关键字,那么就进入delete方法,判断是否要删除
public static void scan(File file,String key){System.out.println("正在扫描"+file.getAbsolutePath());if(file == null){return;} else if(file.isDirectory()){File[] files = file.listFiles();for (File f : files ) {scan(f,key);}}else {if(file.getName().contains(key)){delete(file);}}
}
运行结果