任务:
1.统计一个文件夹下面所有标准文件的个数
2.统计一个文件夹类型,位置,大小,包含的文件和文件夹个数,最后一次修改时间,是否只读,是否隐藏
package sj.FileDemo_v2;
import java.io.File;
/**
* 统计指定文件夹下的标准文件个数
* @author Timmy
*
*/
public class FileDtil {
static int countF = 0;
static int result = 0;
public static void main(String[] args) {
String p = "D:\\Program Files\\Java";
cFile(p);
System.out.println("该文件夹下有标准文件"+result+"个");
System.out.println("该文件夹下有文件夹"+countF+"个");
}
/**
* 统计指定目录文件下的标准文件个数
*
* @param path =>要统计的文件路径
* @return =>返回统计的标准文件个数
*/
public static void cFile(String path) {
//创建文件对象
File file = new File(path);
//判断文件夹路径是否存在
if (!file.exists()) {
System.out.println("文件路径不存在");
return;
}
//文件路径存在,将该文件中的所有子文件返回到一个文件数组中
File[] fs = file.listFiles();
//判断fs是否为null
if (fs == null) {
System.out.println("给定的路径不是一个文件夹");
return;
}
//遍历文件,统计文件个数3
for (int i = 0; i < fs.length; i++) {
File f = fs[i];
//获得文件路径
String str = f.getAbsolutePath();
if(f.isFile()) {
System.out.println("找到一个文件"+str);
//位置
String s = f.getParent();
System.out.println("此文件在“"+s+"”文件夹下");
//大小、最后修改时间
long l = f.length();
long t = f.lastModified();
System.out.println("文件大小:"+l+"字节");
System.out.println("最后一次修改时间:"+t);
//是否可读、是否隐藏
boolean bRead = f.canRead();
boolean bHidden = f.isHidden();
if (bRead) {
System.out.println("此文件可读");
} else {
System.out.println("此文件不可读");
}
if (bHidden) {
System.out.println("此文件被隐藏");
} else {
System.out.println("此文件未被隐藏");
}
System.out.println("*************************************");
result++;
} else if(f.isDirectory()) {
countF++;
cFile(str);
}
}
}
}