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
| Name | Type |
|---|---|
| "lastModifiedTime" | FileTime |
| "lastAccessTime" | FileTime |
| "creationTime" | FileTime |
| "size" | Long |
| "isRegularFile" | Boolean |
| "isDirectory" | Boolean |
| "isSymbolicLink" | Boolean |
| "isOther" | Boolean |
| "fileKey" | Object |
dos:DosFileAttributeView
Name Type readonly Booleanhidden Booleansystem Booleanarchive Booleanposix:PosixFileAttributeView
Name Type "permissions" Set<PosixFilePermission>"group" GroupPrincipal
FileOwnerAttributeView
readAttributes
public static Map<String,Object> readAttributes(Path path, String attributes, LinkOption... options)throws IOExceptionattributes:可以這樣設定
"*"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 IOExceptionUsage Example: Suppose we want to read a file's attributes in bulk:Path path = ... BasicFileAttributes attrs = Files.readAttributes(path, BasicFileAttributes.class);
沒有留言:
張貼留言