java代码遍历文件目录下的文件,获取文件的创建时间和修改时间
例如文件目录为:D:/test 文件夹下包含有这5个文件:
具体java代码如下(fileTimeInfo.java和jsa.java):
fileTimeInfo.java
类文件内容
package testfiletime;
import java.nio.file.Files;
import java.nio.file.LinkOption;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.BasicFileAttributeView;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.Date;
import java.io.File;
import java.text.*;
public class fileTimeInfo
{
public String file_name;//"D:\\test\\12test.txt";
public Date lastmodfiyTimeDate;
public Date CreateTimeDate;
public void set_fileInfo()
{
Path path = Paths.get(file_name);
BasicFileAttributeView basicview = Files.getFileAttributeView(path, BasicFileAttributeView.class,LinkOption.NOFOLLOW_LINKS);
BasicFileAttributes attr;
try
{
attr = basicview.readAttributes();
//attr.lastModifiedTime();
this.lastmodfiyTimeDate=new Date(attr.lastModifiedTime().toMillis());
this.CreateTimeDate= new Date(attr.creationTime().toMillis());
} catch (Exception e)
{
e.printStackTrace();
}
}
//test main
public static void main(String[] args)
{
String path = "D:\\wpstest\\Condition"; //要遍历的路径 Fill和Condition(Fill决定开始时间,Condition决定结束时间)
Date begintime = null,endtime=null;
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(path+ "路径下的所有文件");
System.out.println(" 文件名 "+" lastModfiedTime "+" creationTime ");
File file = new File(path); //获取其file对象
File[] fs = file.listFiles();
for(File f:fs)
{
if(f.isFile()) //若是文件,直接打印
{
String f1 = f.toString().replace("\\","/");
fileTimeInfo fti = new fileTimeInfo();
fti.file_name = f1;
fti.set_fileInfo();
begintime =fti.lastmodfiyTimeDate;
endtime = fti.CreateTimeDate;
}break;
}
for(File f:fs)
{
if(f.isFile()) //若是文件,直接打印
{
String f1 = f.toString().replace("\\","/");
fileTimeInfo fti = new fileTimeInfo();
fti.file_name = f1;
fti.set_fileInfo();
System.out.println(f1+" "+df.format(fti.lastmodfiyTimeDate)+" "+df.format(fti.CreateTimeDate));
if(begintime.after(fti.lastmodfiyTimeDate))
begintime = fti.lastmodfiyTimeDate;
if(endtime.before(fti.CreateTimeDate))
endtime = fti.CreateTimeDate;
}
}
System.out.println("最早时间为"+df.format(begintime));
System.out.println("最晚时间为"+df.format(endtime));
}
}
jsa.java
类文件内容如下:
import java.nio.file.Files;
import java.nio.file.LinkOption;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.BasicFileAttributeView;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.Date;
import java.io.File;
import java.text.*;
public class jsa
{
public String file_name;//文件名(带路径)
public Date lastmodfiyTimeDate;//文件修改时间
public Date CreateTimeDate;//文件创建时间
public void set_fileInfo()
{
Path path = Paths.get(file_name);
BasicFileAttributeView basicview = Files.getFileAttributeView(path, BasicFileAttributeView.class,LinkOption.NOFOLLOW_LINKS);
BasicFileAttributes attr;
try
{
attr = basicview.readAttributes();
this.lastmodfiyTimeDate=new Date(attr.lastModifiedTime().toMillis());
this.CreateTimeDate= new Date(attr.creationTime().toMillis());
} catch (Exception e)
{
e.printStackTrace();
}
}
//test main
public static void main(String[] args)
{
String path = "D:\\test";
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(path+ "路径下的所有文件");
System.out.println(" 文件名 "+" lastModfiedTime "+" creationTime ");
File file = new File(path); //获取其file对象
File[] fs = file.listFiles();
for(File f:fs)
{
if(f.isFile())
{
String f1 = f.toString().replace("\\","/");
fileTimeInfo fti = new fileTimeInfo();
fti.file_name = f1;
fti.set_fileInfo();
System.out.println(f1+" "+df.format(fti.lastmodfiyTimeDate)+" "+df.format(fti.CreateTimeDate));
}
}
}
}
运行结果:
这是我在开发过程中遇到的一个问题,然后通过查阅博客资料总结而得,
参考资料:
Java遍历文件夹下的所有文件
Java 获得文件的创建时间和修改时间
java日期大小比较