天天看點

lnk200無法解析的外部符号_Java File I/O 中的Path核心接口及外部存儲擴充Path相關核心APIPath操作外部存儲擴充

Path相關核心API

lnk200無法解析的外部符号_Java File I/O 中的Path核心接口及外部存儲擴充Path相關核心APIPath操作外部存儲擴充

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。

繼續閱讀