问题描述
我遇到了网络驱动器速度非常慢的问题,并且 SimpleFileVisitor
应该跳过它但也挂了。我想问题是读取文件属性。是否有一种内置方法可以只查看路径而忽略其他任何内容以尽可能快地运行?
final FileVisitor<Path> visitor = new SimpleFileVisitor<Path>() {
private final PathMatcher matcherDirs = FileSystems.getDefault().getPathMatcher(PATTERN_Dirs);
@Override
public FileVisitResult preVisitDirectory(final Path dir,final BasicFileAttributes attrs) throws IOException {
if (!matcherDirs.matches(dir)) {
logger.trace("skipping directory {}",dir.toString());
return FileVisitResult.SKIP_SUBTREE;
}
logger.debug("visit directory {}",dir.toString());
return FileVisitResult.CONTINUE;
}
};
创建的日志:
2021-06-10 10:10:08,137 | TRACE | skipping directory /ap/os/script
2021-06-10 10:10:08,137 | TRACE | skipping directory /at
2021-06-10 10:10:18,143 | TRACE | skipping directory /backups
2021-06-10 10:10:18,143 | TRACE | skipping directory /dev
只列出目录很快,但查看它很慢。所以访客也可以很快,恕我直言。
$ time ls -dl /backups
dr-xr-xr-x 1 root system 1 Jan 06 15:54 /backups
real 0m0.005s
user 0m0.000s
sys 0m0.001s
$ time ls -l /backups
total 0
real 0m30.015s
user 0m0.000s
sys 0m0.001s
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)