public interface FileVisitor<T>
Files.walkFileTree
方法在文件树访问每个文件。
使用的例子:假设我们想删除一个文件树。在这种情况下,在目录中的条目被删除后,每个目录都应该被删除。
路径开始=…文件。walkfiletree(开始,新的simplefilevisitor <路径> (){@Override公共filevisitresult visitfile(路径文件,basicfileattributes属性)抛出IOException{文件,删除(文件);返回filevisitresult.continue;}@Override公共filevisitresult postvisitdirectory(路径目录,IOException e)抛出IOException{如果(E = =零)删除文件(目录);返回filevisitresult.continue;其他{ }目录迭代失败把E;}}}); 路径>
此外,假设我们要将一个文件树复制到目标位置。在这种情况下,应遵循符号链接,并在目录中的条目复制之前创建目标目录。
最终路径源=…最终路径目标=…文件。walkfiletree(源,EnumSet,(filevisitoption。follow_links),integer.max_value,新的simplefilevisitor <路径> (){@Override公共filevisitresult previsitdirectory(路径目录,basicfileattributes属性)抛出IOException{路径targetDIR =目标。解决(来源。相对化(DIR));尝试{文件拷贝(dir targetDIR);} catch(filealreadyexistsexception e){如果(!判断目录(targetDIR))的文件。把E;}返回继续;}@Override公共filevisitresult visitfile(路径文件,basicfileattributes属性)抛出IOException{文件副本(文件、目标。解决(来源。相对化(文件)));返回继续;}}); 路径>
Modifier and Type | Method and Description |
---|---|
FileVisitResult |
postVisitDirectory(T dir, IOException exc)
目录中的条目后,在目录中调用,和他们的所有的后代,已经访问过。
|
FileVisitResult |
preVisitDirectory(T dir, BasicFileAttributes attrs)
调用目录之前,访问目录中的条目。
|
FileVisitResult |
visitFile(T file, BasicFileAttributes attrs)
在目录中调用一个文件。
|
FileVisitResult |
visitFileFailed(T file, IOException exc)
调用无法访问的文件。
|
FileVisitResult preVisitDirectory(T dir, BasicFileAttributes attrs) throws IOException
如果此方法返回CONTINUE
条目,然后在目录的访问。如果此方法返回SKIP_SUBTREE
或SKIP_SIBLINGS
然后条目的目录(和任何的后代)将不会访问。
dir
-参考目录
attrs
-目录的基本属性
IOException
如果I/O错误发生
FileVisitResult visitFile(T file, BasicFileAttributes attrs) throws IOException
file
-参考文件
attrs
-文件的基本属性
IOException
如果I/O错误发生
FileVisitResult visitFileFailed(T file, IOException exc) throws IOException
file
-参考文件
exc
- I/O异常,防止文件被访问
IOException
如果I/O错误发生
FileVisitResult postVisitDirectory(T dir, IOException exc) throws IOException
visitFile
方法返回
SKIP_SIBLINGS
,或I/O错误时,遍历目录)。
dir
-参考目录
exc
-
null
如果目录的迭代完成没有错误;否则I/O异常导致目录的迭代完成过早
IOException
如果I/O错误发生
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.