【Java】获取目录下文件信息
【Java】获取目录下文件信息
需求
输入路径,列出该路径下的是目录还是普通文件、文件名、大小及修改时间,统计文件与文件夹个数,前面标上序号
效果


代码
package com.cxl;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
//输入路径,列出该路径下的是目录还是普通文件、文件名、大小及修改时间,统计文件与文件夹个数,前面标上序号
public class Demo28_Filelist {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入路径名:");
String path = sc.nextLine();
//创建文件对象
File src = new File(path);
//输出结果
System.out.println(src.getAbsolutePath()+"下的文件信息显示如下");
System.out.print("序号\t\t");
System.out.print("文件类型\t\t");
System.out.print("文件名\t\t\t\t\t\t\t");
System.out.print("文件大小(字节)\t\t");
System.out.println("最后修改时间");
System.out.println("===================================================================================================");
//调用获取文件信息方法
fileInfo(path);
}
//获取文件信息
private static void fileInfo(String path) {
int fileNum = 0;
int dirNum = 0;
//时间输出模板
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
File src = new File(path);
//创建数组存储该目录下文件信息
File[] files = src.listFiles();
for (int i = 0; i < files.length; i++) {
//输出序号
System.out.printf("%-9d",i+1);
//判断文件是否为文件夹,获取文件大小
if (files[i].isDirectory()){
System.out.print("目录\t\t");
System.out.printf("%-36s",files[i].getName()); //获取文件名
System.out.printf("%-16s","-");
dirNum++;
}else {
System.out.print("文件\t\t");
System.out.printf("%-35s",files[i].getName());
System.out.printf("%-17s",files[i].length()); //获取文件大小
fileNum++;
}
//输出文件名
//获取文件修改时间
long modify = files[i].lastModified();
//将时间封装为Date对象,以给定模板输出
Date date = new Date(modify);
System.out.print(format.format(date));
//完成一行输出,换行
System.out.println();
}
System.out.println("===================================================================================================");
//输出总数
System.out.println("共有 "+fileNum+" 个文件,"+dirNum+" 个文件夹");
}
}