Java的File类提供了访问文件的属性,但File提供的功能有限。
Java7的NIO.2在java.nio.file.attribbute包下提供了大量的工具类,通过这些工具类,开发者可以非常简单地读取,修改文件属性,这些工具类主要分为以下两类。
XxxAttributeView:代表某种文件属性的视图。
XxxAttributes:代表某种文件属性的集合,程序一般通过XxxAttributeView对象获取XxxAttributes。
下面我只介绍两种,其实还有很多。
BasicFileAttributeView:它可以获取或修改文件的基本属性,包括文件的最后修改时间,最后访问时间,创建时间,大小,是否为目录,是否为符号链接等。它的readAttribute()方法返回一个BasicFileAttributes对象,对文件夹基本属性的修改是通过BasicFileAtributes对象完成。
DosFileAttributeView:它主要用于获取或修改文件DOS相关属性,比如文件是否只读,是否隐藏,是否是系统文件,是否是存档文件等。它的readAttributes()方法返回一个DosFileAttributes对象对这些属性的修改其实是由DosfileAttributes对象来完成。
import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.attribute.BasicFileAttributeView; import java.nio.file.attribute.BasicFileAttributes; import java.nio.file.attribute.DosFileAttributeView; import java.util.Date; public class Test { public static void main(String[] args) throws Exception { Path path=Paths.get("D:/address.txt"); BasicFileAttributeView basicview=Files.getFileAttributeView(path, BasicFileAttributeView.class); BasicFileAttributes basicfile=basicview.readAttributes(); System.out.println("创建时间"+new Date(basicfile.creationTime().toMillis())); System.out.println("文件大小"+basicfile.size()); DosFileAttributeView dosview=Files.getFileAttributeView(path, DosFileAttributeView.class); dosview.setHidden(true); dosview.setReadOnly(true); } }