目录
1、File遍历文件的方法
1.1 遍历当前目录下所有一级文件夹的名称,只能获取一级的
.list()方法,注意获取的只是文件名
public class FindFile {
public static void main(String[] args) throws IOException {
//File遍历文件夹的方法
File file5 = new File("D:\\学习软件\\IoTest); //获取当前目录下所有一级文件夹的名称
String[] list = file5.list();
for (String fileName : list){
System.out.println(fileName);
}
}
}

我们获取到的结果如下:

1.2 获取当前目录下所有一级文件夹,只能获取一级的
.listFiles()方法,获取的是文件对象
注意:隐藏的文件也能获取到,但是没有权限的文件是获取不到的
public class FindFile {
public static void main(String[] args) throws IOException {
//File遍历文件夹的方法
File file5 = new File("D:\\学习软件\\IoTest"); //获取当前目录下所有一级文件夹的名称
File[] list = file5.listFiles();
for (File file : list){
System.out.println(file);
}
}
}
此时我们获取到的就是文件File对象,可以对这个File对象删除或者获取名字获取修改时间等操作。

但是注意只能获取一级的,若要获取多级的文件对象,可以用递归算法进行获取。
file操作文件的时候,只能操作一级文件,所以当我们需要操作更深层级的文件时,就需要用到递归的方法,下面用一个小案例演示File用递归方法找到对应exe文件并启动。
不了解递归的同学可以先看一下我发布的递归算法文章,其实很简单的。321上链接:
递归算法--概念解释、使用场景、经典例子代码演示-CSDN博客
下面也会涉及到一些File的基本操作,不了解的同学可以先去看我上一篇发布的关于IO流的文章:IO流(一),链接我放下面了:
IO流(一):什么是File、什么是IO流?File文件 对象的创建以及常用方法-CSDN博客
2、案例演示 -- 递归查找文件夹下的程序并执行
我们在D盘下有一个QQ.exe的执行文件,我们怎么通过代码找到它的位置并执行呢?

代码演示以及注释
public class FileQQAndOpen {
public static void main(String[] args) throws IOException {
FindQQ(new File("D://腾讯//"),"QQ.exe");
}
private static void FindQQ(File dir,String name) throws IOException {
//先判断非法情况,文件不存在或者不是文件夹的情况直接排除
if (!dir.exists() || dir.isFile() || dir == null){
return;
}
//判断是否能获取到当前一级目录文件
File[] files = dir.listFiles();
if (files.length == 0 || files == null){
return;
}
//遍历一级文件对象
for (File f : files){
//判断是文件还是文件夹,
if (f.isFile()){
//是文件就看看是不是我们要找的QQ.exe
if (f.getName().contains(name)){
System.out.println("找到QQ的位置了:" + f.getAbsolutePath());
Runtime runtime = Runtime.getRuntime();
runtime.exec(f.getAbsolutePath()); //打开QQ.exe
return;
}
}else {
//是文件夹就递归继续往下找
FindQQ(f,name);
}
}
}
}
可以看到我们代码帮我们找到了QQ程序路径并打开该程序

这就是我File遍历文件的理解,希望能帮到大家,有问题的地方欢迎大家一起讨论!
后续会不断更新作品,欢迎大家一起讨论学习。❤❤❤
:File遍历文件的方法--File用递归方法找到对应exe文件并启动(案例)&spm=1001.2101.3001.5002&articleId=143730624&d=1&t=3&u=abbf0419f8d047edbdc5b2ca7de5eaaa)
897

被折叠的 条评论
为什么被折叠?



