- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有以下目录结构
/root/dir
/root/dir/file1.txt
/root/dir/subdir
/root/dir/subdir/file2.txt
class MyFileVisitor extends SimpleFileVisitor<Path> {
@Override
public FileVisitResult visitFile(final Path file, final BasicFileAttributes attrs)
throws IOException {
if(Files.isDirectory(file)) {
throw new IllegalStateException("WAT!? Visiting directory: "+file.toAbsolutePath().toString());
}
System.out.println("Visiting file: "+file.toAbsolutePath().toString());
return super.visitFile(file, attrs);
}
Files.walkFileTree(Paths.get("/root/dir"), new MyFileVisitor());
Visiting file: /root/dir/file1.txt
Visiting file: /root/dir/subdir/file2.txt
Files.walkFileTree(Paths.get("/root/dir"), EnumSet.noneOf(FileVisitOption.class), 1, new MyFileVisitor());
Visiting file: /root/dir/file1.txt
java.lang.IllegalStateException: WAT!? Visting directory: /root/dir/subdir
java -version
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)
最佳答案
我玩了一下你的代码并添加了几行:
/*
* (non-Javadoc)
*
* @see java.nio.file.SimpleFileVisitor#preVisitDirectory(java.lang.Object,
* java.nio.file.attribute.BasicFileAttributes)
*/
@Override
public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs)
throws IOException {
System.out.println(Thread.currentThread().getStackTrace()[1] + " "
+ dir);
return super.preVisitDirectory(dir, attrs);
}
/*
* (non-Javadoc)
*
* @see java.nio.file.SimpleFileVisitor#postVisitDirectory(java.lang.Object,
* java.io.IOException)
*/
@Override
public FileVisitResult postVisitDirectory(Path dir, IOException exc)
throws IOException {
System.out.println(Thread.currentThread().getStackTrace()[1] + " "
+ dir);
return super.postVisitDirectory(dir, exc);
}
/*
* (non-Javadoc)
*
* @see java.nio.file.SimpleFileVisitor#visitFileFailed(java.lang.Object,
* java.io.IOException)
*/
@Override
public FileVisitResult visitFileFailed(Path file, IOException exc)
throws IOException {
System.out.println(Thread.currentThread().getStackTrace()[1] + " "
+ file);
return super.visitFileFailed(file, exc);
}
java.nio.file.FileTreeWalker:134
:
// at maximum depth or file is not a directory
if (depth >= maxDepth || !attrs.isDirectory()) {
return visitor.visitFile(file, attrs);
}
visitFile
对于最深的目录,您甚至不会意识到它们在那里。
@Override
public FileVisitResult visitFile(final Path file,
final BasicFileAttributes attrs) throws IOException {
if (attrs.isDirectory()) {
throw new IllegalStateException("WAT!? Visiting directory: "
+ file.toAbsolutePath().toString());
}
System.out
.println("Visiting file: " + file.toAbsolutePath().toString());
return super.visitFile(file, attrs);
}
关于java-7 - Java 7 walkFileTree 在目录上调用visitFile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20676146/
我正在开发一个从一个特定文件夹(我们称之为“数据文件夹”)读取数据文件的小程序。文件的数量及其名称可能会随着时间的推移而改变,因此我不想将它们严格地添加到代码中。我希望能够列出存储在该文件夹中的所有文
我是java线程过程的新手,我找到了一个示例代码,我有兴趣了解它们的代码如何流动,所以我可以将其放入我的代码中。这是我的reference 。我将使用 Files.walkFileTree() 向 W
我有一个单元测试,尝试使用本地文件系统模拟读取 S3 存储桶。为此,我利用 Files.walkFileTree 将某些记录添加到列表中。 这是正在遍历的文件夹,稍后我将从 .gz 文件中提取数据。
我想跟踪完整的硬盘分区(例如 D:),但出现以下异常: AccessDeniedException java.nio.file.AccessDeniedException: D:System Vol
我正在尝试使用 Java 1.7 nio。当我打电话时 Files.walkFileTree(源[i], tc); 其中 source[i] 是我的 Windows 文件系统上的任何文件夹,tc 是一
我在我的应用程序中遇到了一个奇怪的错误。我已经通过解决方法解决了这个问题,但我仍然很好奇为什么会发生这个错误。 下面给出了一个自定义 FileVisitor 的示例,该示例正在删除它所遍历的空目录。如
假设我有以下目录结构 /root/dir /root/dir/file1.txt /root/dir/subdir /root/dir/subdir/file2.txt 假设我将使用以下访问者: cl
据我了解,使用 Files.walkFileTree 遍历文件树时处理异常的常用方法是在访问者实现中实现一些 try/catch 逻辑,例如通过默默地忽略任何 AccessDeniedExceptio
我正在运行这段代码来遍历目录 - import java.io.*; import java.nio.file.*; import java.nio.file.attribute.*; public
有谁知道 java Files.walkFileTree 的任何并行等价物或类似的东西?它可以是 Java 或 Scala 库。 最佳答案 正如其他人指出的那样,遍历文件树几乎肯定是 IO 绑定(bi
我刚刚将我的 android studio 更新到 v2.0,我一更新就遇到了运行错误: Unable to find method 'java.nio.file.Files.walkFileTree
我正在使用 Files.walkFileTree,而且我还收到了对搜索开始处的根文件夹的 preVisitDirectory 的调用。有什么办法可以跳过这个吗? 例如:/test/的Files.wal
我想确保目录树中的正确权限(目录为 0755,文件为 644)。这是我的类(class): package NRF_Utils; import java.io.IOException; import
我想用新的java.nio.file.Files.walkFileTree在斯卡拉。我什至成功了: class Visitor extends java.nio.file.Simpl
使用根文件夹(例如“T:/”)提供 Files.walkFileTree() 会产生错误: java.nio.file.AccessDeniedException: T:\System Volume
我有一些现有的 Java 代码使用 java.nio.file.Files.walkFileTree 和 FileVisitor 接口(interface),但现在我需要将它移植到纯 C。这个接口(i
我正在使用 Files.WalkFileTree() 来导航文件夹和计算音频文件,但是遇到 tar 文件时出现问题,它似乎将其视为我所期待的实际文件夹跳过它。 我看不到任何让我控制此行为的选项 代码:
似乎长时间运行的树遍历器任务应该在类中定义,如下所示: public class TreeWalker extends SwingWorker implements FileVisitor 并从这
如果我只想对目录第一级的文件做一些事情,使用 Files.list(...) 或 Files.walkFileTree(...) 或 Files.walk(...)() { @Override
我是一名优秀的程序员,十分优秀!