练习1:

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

分析:

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

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

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

  4.判断是否是某种文件

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

 public class Test {

     public static void main(String[] args) {
//创建一个file对象,里面存放指定的目录
File names = new File("D:\\文\\浏览器下载");
String suffix = ".pdf";
getImgList(names,suffix); } private static void getImgList(File names,String suffix) { if(!names.exists())
throw new RuntimeException("没有这个文件夹");
//遍历所有的文件对象来进行操作
File[] f = names.listFiles();
if(f == null)
return ;
for(File name : f){
if(name.isFile()){
if(name.getName().endsWith(suffix))
System.out.println(name.getAbsolutePath());
}else if(name.isDirectory()){
getImgList(name,suffix);
}
}
} }

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

练习2:

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

分析:

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

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

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

 public class Test {

     public static void main(String[] args) {
//
String year = "2016";
File dir = new File("D:\\文档\\浏览器下载");
getFileListByYear(dir,year); } private static void getFileListByYear(File dir,String year) {
//先判断这个文件夹是否存在,不存在的话,抛出异常
if(!dir.exists())
throw new RuntimeException("您指定的目录不存在!");
//对文件夹进行遍历
File[] names = dir.listFiles();
//如果遍历文件夹得到的结果是空的,则结束
if(names == null) return;
for(File name : names){
if(name.isFile()){
//输出的是最后一次修改时间的毫秒时
long time = name.lastModified();
//将毫秒时格式化为我们喜欢的格式
Date date = new Date(time);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
String newYear = sdf.format(date);
if(newYear.equals(year)){
System.out.println(name.getName());
}
}else{
getFileListByYear(name, year);
} } } }

File类和时间类的两道综合练习的更多相关文章

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

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

  2. Java日期时间API系列13-----Jdk8中java.time包中的新的日期时间API类,时间类转换,Date转LocalDateTime,LocalDateTime转Date等

    从前面的系列博客中可以看出Jdk8中java.time包中的新的日期时间API类设计的很好,但Date由于使用仍非常广泛,这就涉及到Date转LocalDateTime,LocalDateTime转D ...

  3. Java常用类之时间类

    JDK8之前日期时间API 1. java.lang.System类 2. java.util.Date类 3. java.text.SimpleDateFormat类 4. java.util.Ca ...

  4. java——String类,时间类,格式化

    日期类 格式化

  5. Java时间类从此变得清晰明了

    Java时间类 Java时间类分为Date 日期类和Calendar 日历类,相信很多小伙伴在初学时会对这个两个类的用法.区别以及有什么联系会感到疑惑,似乎懂了,但又不能具体说清,今天再带你来清晰的再 ...

  6. 日期类时间类,日期时间类,单例模式,装箱与拆箱,数字类随机数,BigDecimal总结

    1.日期类,时间类,日期时间类 初步日期使用方法及格式转换方法(旧方法): 格式://Mon Jul 30 11:26:05 CST 2018             年月日时分秒    CST代表北 ...

  7. Java学习(正则表达式、Date类、DateFormat类、Calendar类)

    一.正则表达式 1.概念:英语:Regular Expression,在代码中常简写为regex.正则表达式,是一个字符串,使用单个字符串来描述.用来定义匹配规则,匹配一系列符合某个句法规则的字符串. ...

  8. 【转】两道面试题,带你解析Java类加载机制(类初始化方法 和 对象初始化方法)

    本文转自 https://www.cnblogs.com/chanshuyi/p/the_java_class_load_mechamism.html 关键语句 我们只知道有一个构造方法,但实际上Ja ...

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

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

随机推荐

  1. HDU-1430-素数回文

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1431 这题之前做过,又不会做了, 思路先直接暴力,输入a=5 b=500000000得到最大的值为9 ...

  2. TTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。

    解决办法一: 控制面板->打开或关闭windows功能->Internet信息服务->万维网服务->应用程序开发功能. 勾选上“.net扩展性”和“ASP.NET”,保存后,重 ...

  3. 怎样在iis中发布asp.net网站

    以windows server2003.vs2008和sql servber2005为例.将开发完成的asp.net网站发布,将发布包放在windows server2003服务器的文件夹下.将web ...

  4. Code forces 719A Vitya in the Countryside

    A. Vitya in the Countryside time limit per test:1 second memory limit per test:256 megabytes input:s ...

  5. 转: 尽己力,无愧于心 FastReport.Net 常用功能总汇

    FastReport.Net 常用功能总汇   一.常用控件 文本框:输入文字或表达式 表格:设置表格的行列数,输入数字或表达式 子报表:放置子报表后,系统会自动增加一个页面,你可以在此页面上设计需要 ...

  6. Vue.js的环境搭建

    vue这个新的工具,确实能够提高效率,vue入门的精髓:(前提都是在网络连接上的情况下) 1.要使用vue来开发前端框架,首先要有环境,这个环境要借助于node,所以要先安装node,借助于node里 ...

  7. 一键打包并发布到Nuget平台

    目标是只要执行一个命令就自动发布新版本到nuget平台 第一步在nuget官网注册一个账号 会有一个APIKEY 如下图   在工程里面添加一个Gruntfile.js 然后copy以下代码 在vs里 ...

  8. <context:component-scan>详解

    默认情况下,<context:component-scan>查找使用构造型(stereotype)注解所标注的类,如@Component(组件),@Service(服务),@Control ...

  9. Unity渲染优化中文翻译(一)——定位渲染问题

    最近有一点个人的时间,尝试一下自己翻译一下英文的 Optimizing graphics rendering in Unity Games, 这儿附上英文链接: 个人英文水平有限,unity图像学知识 ...

  10. PB程序“无法启动此程序,因为计算机中丢失PBvm90.dll。尝试重新安装该程序以解决此问题”的解决方法

    因为有计算机自考科目,要求使用PB程序做一个管理系统.昨天刚安装好了PB程序,今天使用的时候,当我打开一个PB程序时,出现了"无法启动此程序,因为计算机中丢失PBvm90.dll.尝试重新安 ...