代码改变世界

Java访问文件属性

2012-08-22 21:20  javaspring  阅读(653)  评论(0编辑  收藏  举报

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);
		}
}