用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());

}

}

}

}