练习1:

获取指定目录下(包含子目录)所有的某一种类型的文件

分析:

  1.指定路径并获取其下的文件对象

  2.要判断给定的目录是否为空

  3.要判断给定路径下获取的目录是否为空

  4.判断是否是某种文件

  5.因为要求目录下的所有的文件,因此要区分到底是文件夹还是文件,使用递归思想

 1 public class Test {
 2
 3     public static void main(String[] args) {
 4         //创建一个file对象,里面存放指定的目录
 5         File names = new File("D:\\文\\浏览器下载");
 6         String suffix = ".pdf";
 7         getImgList(names,suffix);
 8
 9
10     }
11
12     private static void getImgList(File names,String suffix) {
13
14         if(!names.exists())
15             throw new RuntimeException("没有这个文件夹");
16         //遍历所有的文件对象来进行操作
17         File[] f = names.listFiles();
18         if(f == null)
19             return ;
20         for(File name : f){
21             if(name.isFile()){
22                 if(name.getName().endsWith(suffix))
23                     System.out.println(name.getAbsolutePath());
24             }else if(name.isDirectory()){
25                 getImgList(name,suffix);
26             }
27         }
28     }
29
30 }

------------------------------------------------------

练习2:

获取指定目录下(包含子目录)所有在2016年修改的文件

分析:

  1.获取并进行一系列的判断

  2.将获得的时间格式化,判断是否等于2016年.

  3.因为是所有的文件,需要去使用到递归

 1 public class Test {
 2
 3     public static void main(String[] args) {
 4         //
 5         String year = "2016";
 6         File dir = new File("D:\\文档\\浏览器下载");
 7         getFileListByYear(dir,year);
 8
 9     }
10
11     private static void getFileListByYear(File dir,String year) {
12         //先判断这个文件夹是否存在,不存在的话,抛出异常
13         if(!dir.exists())
14             throw new RuntimeException("您指定的目录不存在!");
15         //对文件夹进行遍历
16         File[] names = dir.listFiles();
17         //如果遍历文件夹得到的结果是空的,则结束
18         if(names == null)    return;
19         for(File name : names){
20             if(name.isFile()){
21                 //输出的是最后一次修改时间的毫秒时
22                 long time = name.lastModified();
23                 //将毫秒时格式化为我们喜欢的格式
24                 Date date = new Date(time);
25                 SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
26                 String newYear = sdf.format(date);
27                 if(newYear.equals(year)){
28                     System.out.println(name.getName());
29                 }
30             }else{
31                 getFileListByYear(name, year);
32             }
33
34         }
35
36
37     }
38
39 }

转载于:https://www.cnblogs.com/leevanes/p/6535199.html

File类和时间类的两道综合练习相关推荐

  1. [19/03/16-星期六] 常用类_Date时间类DateFormat类

    一.Date时间类 计算机中 以1970 年 1 月 1 日 00:00:00定为基准时间,每个度量单位是毫秒(1秒的千分之一) 用ong类型的变量来表示时间,如当前时刻数值:long  now =n ...

  2. Unity3D基础32:屏幕类、时间类与数学类

    前文:https://blog.csdn.net/Jaihk662/article/details/86751079(C#脚本) 一.屏幕类 Screen.width:静态只读属性,屏幕的宽度 Scr ...

  3. Date类(日期时间类)219

    219节课堂笔记 1.概述:表示特定的时间 2.所在的类:java.util.Date(表示时间和日期的类) 类date标识特定的瞬间,精确到毫秒 3.毫秒的换算:1秒=1000毫秒 tips:不可以 ...

  4. 常类型的使用 常成员函数(设计一个日期类和时间)

    普通成员函数可以访问常数据成员但是不能改变常数据成员的值: 普通成员函数不可以访问常对象的数据成员且不能改变常对象的数据成员的值: 常成员函数可以访问普通数据成员但是不可以改变普通数据成员的值: 常成 ...

  5. 进阶 2 日期时间类

    文章目录 Date DateFormat类 练习 Calendar类 日期时间类 Date java.util.Date`类 表示特定的瞬间,精确到毫秒. java.util.Date:表示日期和时间 ...

  6. 菜鸟学习笔记:Java基础篇7(包装类、时间相关类、文件类、异常处理类)

    菜鸟学习笔记:Java其他常用类 基本数据类型包装类 时间处理和文件处理相关类 Date时间类 SimpleDateFormat Calendar日历类 文件类 异常机制 异常的概念 Java异常处理 ...

  7. Java常用类:时间相关类

    Java常用类:时间相关类 java.util.Date java.util.Calendar java.time 基本废弃,但有一个方法仍在使用 目前程序中最常用的, 是抽象类 Java 8 推出新 ...

  8. sql两个时间计算时间差_Java 8时间类,越用越香

    为什么会在Jdk8中加入很多时间类 非线程安全 java.util.Date 是非线程安全的,所有的日期类都是可变的,这是Java日期类最大的问题之一. Date date = new Date(); ...

  9. 求计算两个时间的差(DateTime类和TimeSpan类)

    日期时间数据是项目设计过程中经常需要处理的信息,C#提供了DateTime类和TimeSpan类来处理日期时间数据.下面介绍说明Datetime类和TimeSpan类的使用 //初始化DateTime ...

最新文章

  1. ios9定位服务的app进入后台三分钟收不到经纬度,应用被挂起问题及解决方案
  2. DataReport使用手记
  3. Fall with Trees 二维平面直角坐标系-凸包-推公式
  4. 【Blog.Core开源】网关自定义认证鉴权与传参
  5. html5网页制作代码_HTML5的网页设计教程
  6. 流行的编程语言及其趋势
  7. 《Python Cookbook 3rd》笔记(2.14):合并拼接字符串
  8. WordPress前台后台页面打开慢的解决方法
  9. amazon s3_在Amazon S3上托管静态网站
  10. mysql 补丁 patch6_系统管理-第6部分――补丁(patch)管理和在线更新
  11. Android 项目必备(四十一)-->Android 开发实战经验总结
  12. 计算机无法安装ae,Windows10系统AE软件无法安装如何处理
  13. HardLink SymbolLink Junctions
  14. Unity高德定位获取天气预报
  15. PIE-engine 教程 ——新疆石河子市棉花种植面积提取(阈值法)案例分析
  16. 萃见:上班还是创业,这是一个值得思考的问题?
  17. 我的心中每天开出一朵花(一)
  18. python汉字拼音查询_Python汉字转拼音
  19. Android Clipping
  20. 解决Zabbix用snmp监控网络流量不准的问题

热门文章

  1. python arp_在python上发出ARP请求
  2. channelinboundhandler中都包含了哪一类的方法_标准气体的分类类别与相关气体配置方式方法...
  3. R包实践:lubridate 处理时间数据
  4. guido发布python版本的年份_Guido van Rossum
  5. 人脸对齐(四)--CLM算法及概率图模型改进
  6. 系统学习机器学习之模型诊断与调试
  7. 【软件工程导论】可行性研究
  8. PAT (Basic Level) Practice1003 我要通过!
  9. MR Shuffle流程 入门
  10. Spark DataFrame入门详解