JAVA/NIO2

[NIO.2]Basic File Attributes

lahuman 2013. 12. 10. 17:08
728x90

이전에 언급 되었듯, 파일의 기본 속성을 읽는 것은 Files.readAttributes Method를 통해 대부분 모든 속성 정보를 읽을수 있다.


이 방법 보다. 더 능률적인 파일 시스템에 대한 접근은 각각의 속성에 접근 하는 것이다.


LinkOption enum, NOFOLLOW_LINKS 인자를 현재 지원 한다.

위 옵션은 심볼릭 링크를 따라가지를 원치 않을 경우 사용 한다.

time stamps 에 대하여 : 기본 뷰는 3가지 시간을 설정 한다. 

  - creationTime, lastModifiedTime, lastAccessTime

위 시간에 대하여 지원 하지 않을 경우 구현고유의 값을 전달 하며, 지원 할 경우 FileTime object를 전달 합니다.


BasicFileAttribute 를 이용한 파일 정보 호출

		Path file = Paths.get("/Temp/4.gif");
		BasicFileAttributes attr = Files.readAttributes(file, BasicFileAttributes.class);

		System.out.println("creationTime: " + attr.creationTime());
		System.out.println("lastAccessTime: " + attr.lastAccessTime());
		System.out.println("lastModifiedTime: " + attr.lastModifiedTime());

		System.out.println("isDirectory: " + attr.isDirectory());
		System.out.println("isOther: " + attr.isOther());
		System.out.println("isRegularFile: " + attr.isRegularFile());
		System.out.println("isSymbolicLink: " + attr.isSymbolicLink());
		System.out.println("size: " + attr.size());


결과 : 

creationTime: 2013-08-30T00:55:29.131666Z

lastAccessTime: 2013-08-30T00:55:29.181669Z

lastModifiedTime: 2013-08-30T00:55:02.587148Z

isDirectory: false

isOther: false

isRegularFile: true

isSymbolicLink: false

size: 485500


Time Stamps 설정

Path file = Paths.get("/Temp/4.gif");
		BasicFileAttributes attr =
		    Files.readAttributes(file, BasicFileAttributes.class);
		long currentTime = System.currentTimeMillis();
		FileTime ft = FileTime.fromMillis(currentTime);
		Files.setLastModifiedTime(file, ft);
		

작업전 수정 시간 : 

lastModifiedTime: 2013-08-30T00:55:02.587148Z

작업후 수정 시간 : 

lastModifiedTime: 2013-12-10T08:24:38.31Z


참고 URL : http://docs.oracle.com/javase/tutorial/essential/io/fileAttr.html#basic


728x90