JavaSE 7,8:确定特定文件系统支持的视图
如果您對文件或目錄有疑問,例如是否隱藏文件,是否為目錄,文件的大小以及文件的所有者,則可以從元數據中獲得這些問題(以及許多其他問題)的答案,這是關于其他數據的數據。
NIO.2將元數據的概念與屬性相關聯,并通過java.nio.file.attribute包提供對它們的訪問。 由于不同的文件系統對應跟蹤哪些屬性具有不同的概念,因此NIO.2將屬性分組為視圖,每個視圖都映射到特定的文件系統實現。
通常,視圖通過通用方法readAttributes()批量提供屬性。 另外,可以分別使用java.nio.file.Files類中的getAttribute()和setAttribute(方法提取和設置單個屬性,根據視圖 ,其他方法也可以用于其他任務。
在這里,我將解釋如何使用NIO.2來管理有關文件元數據的更多詳細信息。 屬性分為幾類,現在它們也涵蓋了POSIX系統。
在嘗試訪問視圖的屬性之前,請確保文件系統支持相應的視圖。
NIO.2帶有一組六個視圖( Basic Dos , POSIX FileOwner , ACL和UserDefinedFileAttributeView )。
- POSIX (UNIX的便攜式操作系統接口)。
- 所有文件系統都支持基本視圖,因此您應該至少在輸出中獲得基本名稱。
支持的視圖是:
這是所有文件系統實現都必須支持的基本屬性的視圖。 屬性視圖名稱是基本的。
該視圖在支持DOS屬性的文件系統上提供了標準的四個受支持的屬性。 屬性視圖名稱為dos。
此視圖使用支持POSIX(Unix的便攜式操作系統接口)標準系列(例如Unix)的文件系統上支持的屬性擴展了基本屬性視圖。 屬性視圖名稱為posix。
任何支持文件所有者概念的文件系統實現均支持此視圖。 屬性視圖名稱為所有者。
該視圖支持讀取或更新文件的ACL。 支持NFSv4 ACL模型。 屬性視圖名稱為acl。
該視圖支持用戶定義的元數據。
這是顯示不同操作的代碼片段
- 獲取所有支持的文件系統視圖 import static java.lang.System.out;.......FileSystem fs = FileSystems.getDefault();for (String sfsView : fs.supportedFileAttributeViews()) {out.println(sfsView);}
- 檢查文件存儲是否支持特定視圖
您可以通過調用FileStore.supportsFileAttributeView()方法來測試文件存儲上的特定視圖。 您可以將所需的視圖作為字符串或類名傳遞。 import static java.lang.System.out;.......FileSystem fs = FileSystems.getDefault();for (FileStore fileStore : fs.getFileStores()) {boolean supported = fileStore.supportsFileAttributeView(BasicFileAttributeView.class);out.println("Is " + fileStore.name() + ": supports \'basic file attribute view\' ---> " + (supported ? "Yes" : "No")); } - 檢查特定文件所在的文件存儲是否支持單個視圖
此外,您可以檢查特定文件所在的文件存儲是否支持單個視圖。 import static java.lang.System.out; import static java.lang.System.err;.......FileSystem fs = FileSystems.getDefault();try {FileStore store = getFileStore(path);boolean supported = store.supportsFileAttributeView("acl");out.println("Is " + store.name() + ": supports \'ACL file attribute view\' ---> " + (supported ? "Yes" : "No")); } catch (IOException ex) {err.println(ex); }
僅此而已,如果您喜歡的話,盡情享受吧。
資源:
- JDK7:第1部分-Java 7 NIO.2(JSR 203)的強大功能(重要概念)
- JSR 203:針對JavaTM平臺(“ NIO.2”)的更多新I / O API
翻譯自: https://www.javacodegeeks.com/2014/03/javase-78-determining-views-supported-by-a-particular-file-system.html
總結
以上是生活随笔為你收集整理的JavaSE 7,8:确定特定文件系统支持的视图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓考勤定位伪装位置(安卓考勤)
- 下一篇: 使用Akka简化交易系统