Path相關核心API

1、Paths作為工具類,簡化Path的建立過程。通過FileSystem建立平台相關的Path。
2、FileSystems作為工具類,簡化FileSystemProvider,以及相應FileSystem的建立過程。
1)擷取預設系統參數、Uri、Path的FileSystemProvider
2)通過provider擷取FileSystem
3、UnixPath實作在構造時
1)移除多餘的/,并檢查字元的有效性
2)預設UTF-8編碼路徑字元串為位元組數組,用于後續的Path操作
Path操作
- 操作Path字元串本身,不通路檔案系統
String toString();将Path轉換為字元串形式
Path getFileName();root最遠一級的目錄或檔案
Path getName(int index);以 / 分組,以0開始,擷取指定所有的name
int getNameCount();以 / 分組,name的個數
Path subpath(int beginIndex, int endIndex);不包括根路徑,包括beginIndex,不包括endIndex的name組成的Path
Path getParent();除去FileName的路徑
Path getRoot();unix的root目錄就是 /
Path toAbsolutePath();1、絕對路徑轉換後不變;2、相對路徑轉換後為工作目錄/相對路徑
Path resolve(String other);1、other是相對路徑追加到原路徑的後面;2、other是絕對路徑,則直接傳回
Path relativize(Path other);path導航到other路徑的操作步驟
- 通路檔案系統,若不存在則抛出異常
Path toRealPath(LinkOption... options) throws IOException;1、解析符号連結的實際Path;2、相對路徑轉為絕對路徑;3、解析備援路徑:.(目前目錄) 或 ..(父目錄)
外部存儲擴充
FileSystemProvider,作為SPI可以由第三方實作。如果有第三方外部存儲的場景,可以自定義Scheme,來對應相應的FileSystemProvider。同時,在調用FileSystemProvider的public abstract Path getPath(URI uri)方法時,建議遵循Path的工廠定義規範,委派給相應的FileSystem實作來擷取平台相關的Path。