Files.WalkFileTree 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
| 名稱 | Description |
|---|---|
| WalkFileTree(IPath, IFileVisitor) |
走過檔案樹。 |
| WalkFileTree(IPath, ICollection<FileVisitOption>, Int32, IFileVisitor) |
走過檔案樹。 |
WalkFileTree(IPath, IFileVisitor)
走過檔案樹。
[Android.Runtime.Register("walkFileTree", "(Ljava/nio/file/Path;Ljava/nio/file/FileVisitor;)Ljava/nio/file/Path;", "", ApiSince=26)]
public static Java.Nio.FileNio.IPath? WalkFileTree(Java.Nio.FileNio.IPath? start, Java.Nio.FileNio.IFileVisitor? visitor);
[<Android.Runtime.Register("walkFileTree", "(Ljava/nio/file/Path;Ljava/nio/file/FileVisitor;)Ljava/nio/file/Path;", "", ApiSince=26)>]
static member WalkFileTree : Java.Nio.FileNio.IPath * Java.Nio.FileNio.IFileVisitor -> Java.Nio.FileNio.IPath
參數
- start
- IPath
起始檔案
- visitor
- IFileVisitor
每個檔案要調用的檔案訪客
傳回
起始檔案
- 屬性
備註
走過檔案樹。
此方法的運作方式就像是等價於評估表達式: <blockquote>
walkFileTree(start, EnumSet.noneOf(FileVisitOption.class), Integer.MAX_VALUE, visitor)
</blockquote> 換句話說,它不遵循符號連結,而是造訪檔案樹的所有層級。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
適用於
WalkFileTree(IPath, ICollection<FileVisitOption>, Int32, IFileVisitor)
走過檔案樹。
[Android.Runtime.Register("walkFileTree", "(Ljava/nio/file/Path;Ljava/util/Set;ILjava/nio/file/FileVisitor;)Ljava/nio/file/Path;", "", ApiSince=26)]
public static Java.Nio.FileNio.IPath? WalkFileTree(Java.Nio.FileNio.IPath? start, System.Collections.Generic.ICollection<Java.Nio.FileNio.FileVisitOption>? options, int maxDepth, Java.Nio.FileNio.IFileVisitor? visitor);
[<Android.Runtime.Register("walkFileTree", "(Ljava/nio/file/Path;Ljava/util/Set;ILjava/nio/file/FileVisitor;)Ljava/nio/file/Path;", "", ApiSince=26)>]
static member WalkFileTree : Java.Nio.FileNio.IPath * System.Collections.Generic.ICollection<Java.Nio.FileNio.FileVisitOption> * int * Java.Nio.FileNio.IFileVisitor -> Java.Nio.FileNio.IPath
參數
- start
- IPath
起始檔案
- options
- ICollection<FileVisitOption>
配置遍歷的選項
- maxDepth
- Int32
可造訪的最大目錄層級數
- visitor
- IFileVisitor
每個檔案要調用的檔案訪客
傳回
起始檔案
- 屬性
備註
走過檔案樹。
此方法會走過以特定起始檔案為根的檔案樹。 檔案樹遍歷為 <em>depth-first</em> ,並對每個遇到的檔案呼叫給出 FileVisitor 的參數。 檔案樹遍歷完成時,當樹中所有可存取的檔案都已被造訪,或某個訪問方法回傳了 。FileVisitResult#TERMINATE TERMINATE 當訪問方法因 、 未抓到的錯誤或執行時異常而終止 IOException時,遍歷即終止,錯誤或異常會傳播給該方法的呼叫者。
對於遇到的每個檔案,此方法嘗試讀取其 java.nio.file.attribute.BasicFileAttributes。 若檔案不是目錄,則會以檔案屬性呼叫該 FileVisitor#visitFile visitFile 方法。 若因 I/O 例外無法讀取檔案屬性,則會以 I/O 例外呼叫該 FileVisitor#visitFileFailed visitFileFailed 方法。
若檔案為目錄且無法開啟,則會以 I/O 例外呼叫該 visitFileFailed 方法,之後檔案樹路徑預設會從目錄的下一個 <em>兄弟<節點/em> 繼續。
當目錄成功開啟後,則會造訪目錄中的條目及其 <em 後代</em>>。 當所有項目都被造訪過,或在目錄迭代過程中發生 I/O 錯誤時,該目錄就會關閉,並呼叫訪客 FileVisitor#postVisitDirectory postVisitDirectory 的方法。 檔案樹的路徑預設會從目錄的下一個 <em>兄弟<節點/em> 繼續。
預設情況下,符號連結不會自動被此方法接續。 若 options 參數包含該 FileVisitOption#FOLLOW_LINKS FOLLOW_LINKS 選項,則會遵循符號連結。 當追蹤連結且無法讀取目標的屬性時,此方法嘗試取得連結的 。BasicFileAttributes 如果能讀取,則會以連結的屬性呼叫該 visitFile 方法(否則 visitFileFailed 依上述規定呼叫方法)。
若參數 options 包含該 FileVisitOption#FOLLOW_LINKS FOLLOW_LINKS 選項,此方法會追蹤已造訪的目錄,以便偵測週期。 當目錄中存在一個條目是該目錄的祖先時,就產生了循環。 週期偵測是透過記錄 java.nio.file.attribute.BasicFileAttributes#fileKey file-key 目錄數量來完成,或若無法取得檔案金鑰,則透過 #isSameFile isSameFile 呼叫方法來測試目錄是否與祖先檔案相同。 當偵測到一個週期時,會視為 I/O 錯誤,並以 的FileSystemLoopException實例呼叫該FileVisitor#visitFileFailed visitFileFailed方法。
參數 maxDepth 是可造訪最多目錄層級數。 值 表示 0 只有起始檔案會被造訪,除非安全管理員拒絕。 可用 的 Integer#MAX_VALUE MAX_VALUE 值表示所有關卡都應該造訪。
visitFile此方法會對所有在 處maxDepth遇到的檔案(包括目錄)呼叫,除非基本檔案屬性無法讀取,此時會呼叫該visitFileFailed方法。
如果訪客回傳結果, null 則 NullPointerException 會拋出 。
當安裝安全管理員並拒絕存取某個檔案(或目錄)時,該管理工具會被忽略,訪客不會被呼叫該檔案(或目錄)。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。