Java遍历指定目录或当前目录

本文详细介绍了如何使用Java的File类遍历文件系统,判断文件类型,显示文件的最后修改时间和大小。同时,讲解了如何优雅地格式化时间戳以及处理用户输入,确保程序的健壮性。此外,还提到了统计子目录和普通文件数量的方法。整个过程结合实例,便于理解和实践。
摘要由CSDN通过智能技术生成

一、解决遍历问题

可以使用File类中的 listFile() 方法生成 File[]集合,然后通过循环对每个对象进行操作;

二、判断文件类型

可以使用File类中的 isDirectory() 和 isFile() 方法分别判断是目录还是文件,此步骤可以通过遍历实现。

三、显示最后修改时间

可以使用 File 类的 lastModified() 方法来显示,但这个方法返回的 long 类型,要用 Instant 类进行转换。

LocalDateTime dateTime = Instant.ofEpochMilli(files[i].lastModified()).
atZone(ZoneId.systemDefault()).toLocalDateTime();

如果要更美观一些,可以使用格式化进行处理

String strPattern = "yyyy-MM-dd HH:mm:ss";  //时间格式的规则    
//格式化时间,这里的dateTime就是上面转换的
String date = dateTime.format(formatter);

四、显示文件大小

可以使用 File 类的 length() 方法来显示,但返回的是B单位,所以也要转换一下。

int size = (int) Math.ceil(files[i].length() / 1024.0) + "KB"

这里使用的是Math的向上取整 ceil() 方法,再转换为int类型,这就跟文件资源管理器一样了。

五、子目录和普通文件的个数

这个就直接判断是子目录还是普通文件,循环的时候顺便一起计数了;

六、解决输入问题

用户总是会输入一些奇奇怪怪的东西,这时候我们就要排除

1.可以使用 file.isDirectory() 来判断是不是一个目录,若不是再给予提示;

2.要消除头尾和中间的无效空格,可以使用 trim() 和 replace(" ","") 方法

3.用户可能要查询 根目录d:\ 和 d:当前目录,d:直接送入file 类使用,虽然不会报错,但是会出现小bug,彷佛file的方法失灵了。所以此时我们还要把输入的路径再处理成绝对路径:

file = file.getAbsoluteFile();  //获取输入的绝对路径,避免当前目录或根目录获取错误

附张图吧:

 

 

至于这个窗口,用FXML做的。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值