JAVA/NIO2

[NIO.2]User-Defined File Attributes

lahuman 2013. 12. 30. 14:39
728x90

만약 너의 파일 시스템에서 너에게 충분한 파일 속성을 제공 하지 않을 경우, 너는 UserDefinedAttributeView 을 사용하여, 너만의 파일 속성을 생성 할 수 있다.


파일의 MIME 타입을 사용자 정의 속성으로 정의 하는 코드

Path file = ...;

UserDefinedFileAttributeView view = Files
    .getFileAttributeView(file, UserDefinedFileAttributeView.class);
view.write("user.mimetype",
           Charset.defaultCharset().encode("text/html");


파일의 MIME 타입을 읽는 코드

Path file = ...;
UserDefinedFileAttributeView view = Files
.getFileAttributeView(file,UserDefinedFileAttributeView.class);
String name = "user.mimetype";
ByteBuffer buf = ByteBuffer.allocate(view.size(name));
view.read(name, buf);
buf.flip();
String value = Charset.defaultCharset().decode(buf).toString();


Xdd는 은 get, set and delete user-defined 속성에 대한 예제를 보여준다.


주의 : 리눅스에서  속성 확장을 하여야 사용자 속성 정의가 동작을 한다. 만약에 사용자 정의 속성에 대한 접근을 시도 했을때 UnsupportedOperationException 같은 에러가 발생한다면 파일 시스템을 다시 올려야 할 것이다.

ext3 파일 이스템에서는 다음 명령어를 이용하여 운영자 파티션을 다시 올려야 한다.

(아래 명령어가 동작 하지 않을 경우 각 리눅스의 문서를 확인하라)

$ sudo mount -o remount, user_xattr /


만약 영구적으로 변경을 원할 경우, /etc/fstab 에 등록 하시오.


출처 : http://docs.oracle.com/javase/tutorial/essential/io/fileAttr.html#user

728x90