微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

可以告诉 Java FileVisitor 跳过文件并仅返回文件夹路径吗?

如何解决可以告诉 Java FileVisitor 跳过文件并仅返回文件夹路径吗?

我喜欢 FileVisitor 界面,因为它能够忽略走路径时遇到的任何错误。但是,我需要使用它来仅返回所走路径中文件夹的路径。我不希望它接触或以任何方式提供有关每个文件夹中文件的任何信息,我只想要它接触的每个文件夹的完整路径。

这里是 FileVisitor 类的典型实现

import java.io.IOException;
import java.nio.file.FileVisitResult;
import java.nio.file.FileVisitor;
import java.nio.file.Path;
import java.nio.file.attribute.BasicFileAttributes;

class myFileVisitor implements FileVisitor<Path> {

    @Override
    public FileVisitResult preVisitDirectory(
            Path dir,BasicFileAttributes attrs) {
        return null;
    }

    @Override
    public FileVisitResult visitFile(
            Path file,BasicFileAttributes attrs) {
        return null;
    }

    @Override
    public FileVisitResult visitFileFailed(
            Path file,IOException exc) {
        return null;
    }

    @Override
    public FileVisitResult postVisitDirectory(
            Path dir,IOException exc) {
        return null;
    }
}

我将如何实现对此类的指令以仅返回它遍历的每个文件夹的路径,而根本不返回文件,同时保持忽略无法访问的文件夹或权限错误等可能遇到的任何错误的能力。 ?

我正在寻找的输出示例最终会成为一个像这样的列表,只有列表中的每个项目都是文件夹路径,而不是文件(我意识到我在这个中有斜杠例如,但这只是表明它是我想要的文件夹):

/Users/
/Users/user/
/Users/user/Documents/
/Users/user/Documents/Finance/
/Users/user/Documents/Finance/CompanyA/
/Users/user/Documents/Finance/CompanyB/
/Users/user/Documents/Finance/CompanyC/
/Users/user/Documents/HumanResources/
/Users/user/Documents/HumanResources/A-G/
/Users/user/Documents/HumanResources/H-O/
/Users/user/Documents/HumanResources/P-U/
/Users/user/Documents/HumanResources/V-Z/
/Users/user/Downloads/
/Users/user/Downloads/CadFiles/

这可以通过 FileVisitor 类实现吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。