用Java写一个递归遍历目录下面的所有文件

java获取文件的属性如文件大小和修改时间:

long mysize = file.length();
long lastModified = file.lastModified();
System.out.println(“大小:”);
SimpleDateFormat dateFormat = new SimpleDateFormat(“YYYY-MM-dd HH:mm:ss”);//注意大小写是不一样的,一般返回时间和日期都是以毫秒和字节这些基本的单位

// dateFormat.format(lastModified);
System.out.println(“大小:”+mysize+" ,"+“修改时间:”+ dateFormat.format(lastModified));
}
————————————————
版权声明:本文为CSDN博主「钢笔布莱恩特」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_20172379/article/details/87804061

本文链接:https://blog.csdn.net/qq_34309305/article/details/79194343
首先,拿到这个题目,我要找java怎样实现文件的读取。

File file = new File(fileName);
我们知道java通过以上代码获取文件目录
File[] files = file.listFiles();
上面代码获取目录下所有子文件和文件夹。
以下是java.io.File.isFile()方法的声明:

public boolean isFile()
参数

NA

返回值

当且仅当表示此抽象路径名的文件是一个文件该方法返回true,否则该方法返回false。

通过isFile()函数可以判断是否为文件。
通过isDirectory()函数可以判断是否为目录。
知道了这些就好办了。

import java.io.File;

public class Counter2 {

public static void main(String[] args) {
//取得目标目录
File file = new File("D:");
//获取目录下子文件及子文件夹
File[] files = file.listFiles();
readfile(files);

}

public static void readfile(File[] files) {
if (files == null) {// 如果目录为空,直接退出
return;
}
for(File f:files) {
//如果是文件,直接输出名字
if(f.isFile()) {
System.out.println(f.getName());
}
//如果是文件夹,递归调用
else if(f.isDirectory()) {
readfile(f.listFiles());
}
}
}
}

猜你喜欢

转载自www.cnblogs.com/eryun/p/11607725.html