HTML/JavaScript小工具

HTML/JavaScript小工具

2013年5月14日 星期二

java_nio2_2_FILES_ getAttribute與readAttributes


Path path2 = Paths.get("/Users/user/tmp/JavaIo1ln.java");<===他是SymbolicLink檔
try {
BasicFileAttributes basicFileAttributes = Files.readAttributes(path2, BasicFileAttributes.class);
System.out.println(basicFileAttributes.isSymbolicLink());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

以上會顯示false,他預設會去取得SymbolicLink真實的資源!

如果屬性填寫錯誤會出現java.lang.IllegalArgumentException: 'sized' not recognized
如下例:
Map<String, Object> myMpa = Files.readAttributes(path2, "sized");
sized是錯誤的參數

getAttribute

Files.getAttribute(path, "creationTime",LinkOption.NOFOLLOW_LINKS);

參數部分
1 要查詢屬性的Path
2 使用 [view-name:]attribute-name表示想找的屬性詳下面說明
3 是否要找連結檔的屬性

屬性設定:
預設view-name使用basic 如basic: creationTime

basic:對應類別

BasicFileAttributeView

NameType
"lastModifiedTime"FileTime
"lastAccessTime"FileTime
"creationTime"FileTime
"size"Long
"isRegularFile"Boolean
"isDirectory"Boolean
"isSymbolicLink"Boolean
"isOther"Boolean
"fileKey"Object

dos:DosFileAttributeView

NameType
readonlyBoolean
hiddenBoolean
systemBoolean
archiveBoolean
posix:
PosixFileAttributeView
NameType
"permissions"Set<PosixFilePermission>
"group"GroupPrincipal

FileOwnerAttributeView

readAttributes

public static Map<String,Object> readAttributes(Path path,
String attributes,
 LinkOption... options)throws IOException
attributes:可以這樣設定
"*"Read all basic-file-attributes.
"size,lastModifiedTime,lastAccessTime"Reads the file size, last modified time, and last access time attributes.
"posix:*"Read all POSIX-file-attributes.
"posix:permissions,owner,size"Reads the POSX file permissions, owner, and file size.

public static <A extends BasicFileAttributes> A readAttributes(Path path,
                                               Class<A> type,
                                               LinkOption... options)
                                                    throws IOException
Usage Example: Suppose we want to read a file's attributes in bulk:
    Path path = ...
    BasicFileAttributes attrs = Files.readAttributes(path, BasicFileAttributes.class);
 

沒有留言:

張貼留言