Можно ли указать 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?