Таким образом, вы можете иметь больше возможностей, попробуйте Java 7 NIO способ сделать это
public static void main(String[] args) throws Exception {
try (DirectoryStream<Path> files = Files.newDirectoryStream(Paths.get("/"))) {
for (Path path : files) {
System.out.println(path.toString());
}
}
}
Вы также можете предоставить фильтр для дорожек в виде DirectoryStream.Filter
реализации
public static void main(String[] args) throws Exception {
try (DirectoryStream<Path> files = Files.newDirectoryStream(Paths.get("/"),
new DirectoryStream.Filter<Path>() {
@Override
public boolean accept(Path entry) throws IOException {
return true; // or whatever you want
}
})
) {
for (Path path : files) {
System.out.println(path.toString());
}
}
}
Очевидно, вы можете извлечь анонимный класс для объявления фактического класса.
Обратите внимание, что это решение не может вернуть null
, как решение listFiles()
.
Для рекурсивного решения ознакомьтесь с интерфейсом FileVisitor
. Для соответствия пути используйте интерфейс PathMatcher
, а также FileSystems
и FileSystem
. Есть примеры, которые плавают вокруг Stackoverflow.
Посмотрите на методы класса 'File', все, что вам нужно, либо находится, либо ссылается на них. –
java.io.File список ... –