package jayxigua.coding.zfb._20180512;
import java.io.File;
import java.util.Date;
/**
* 问题描述:打印一个文件夹(子文件夹)下,文件名包含该关键词的文件列表(文件名,创建时间,大小)
* 技术点:file常用接口,边界场景,递归
* 难度:★★☆
* 接口文档:http://tool.oschina.net/apidocs/apidoc?api=jdk-zh
* 实现参考:
* 文件大小:https://www.cnblogs.com/hellowhy/p/7238570.html
* @author jayxigua
*
*/
public class FileFind {
final static String res_Format = "文件名 %s,路径%s,最近修改时间 %s,大小 %s KB";
public static void main(String[] args) {
String dirPath = "/Users/Program/workspace_mars/maven_helloworld/";
String keyWord = "Demo";
File dir = new File(dirPath);
findFileFromDir(dir, keyWord);
}
static void findFileFromDir(File dir, String keyWord) {
if (dir.exists()) {
if (dir.isDirectory()) {
File[] files = dir.listFiles();
final int fileL = files.length;
for (int i = 0; i < fileL; i++) {
File curFile = files[i];
// System.out.println("[debug] curFile =" + curFile);
if (!curFile.isDirectory()) {
if (curFile.getName().contains(keyWord)) {
System.out.println(
"result " + String.format(res_Format, curFile.getName(), curFile.getAbsolutePath(),
new Date(curFile.lastModified()), curFile.length() / 1024));
}
} else {
// 目录,递归
findFileFromDir(curFile, keyWord);
}
}
} else {
System.out.println("[warn] 该文件非文件夹");
}
} else {
System.out.println("[error] 路径不存在");
}
}
}
网友评论