Moh*_*our 125
您可以使用File类列出目录.
File file = new File("/path/to/directory");
String[] directories = file.list(new FilenameFilter() {
@Override
public boolean accept(File current, String name) {
return new File(current, name).isDirectory();
}
});
System.out.println(Arrays.toString(directories));
Run Code Online (Sandbox Code Playgroud)
更新
作者对这篇文章的评论想要一个更快的方法,这里有很好的讨论: 如何在Java中快速检索目录列表?
基本上:
hea*_*svk 101
一个非常简单的Java 8解决方案:
File[] directories = new File("/your/path/").listFiles(File::isDirectory);
Run Code Online (Sandbox Code Playgroud)
它等同于使用FileFilter(也适用于旧Java):
File[] directories = new File("/your/path/").listFiles(new FileFilter() {
@Override
public boolean accept(File file) {
return file.isDirectory();
}
});
Run Code Online (Sandbox Code Playgroud)
Jav*_*zzi 14
@Mohamed Mansour你几乎就在那里......你正在使用的"dir"论证实际上是一条前沿的道路,所以它总是会回归真实.为了查看孩子是否是子目录,您需要测试该孩子.
File file = new File("/path/to/directory");
String[] directories = file.list(new FilenameFilter() {
@Override
public boolean accept(File current, String name) {
return new File(current, name).isDirectory();
}
});
System.out.println(Arrays.toString(directories));
Run Code Online (Sandbox Code Playgroud)
如果您对使用Java 7和NIO.2的解决方案感兴趣,它可能会像这样:
private static class DirectoriesFilter implements Filter<Path> {
@Override
public boolean accept(Path entry) throws IOException {
return Files.isDirectory(entry);
}
}
try (DirectoryStream<Path> ds = Files.newDirectoryStream(FileSystems.getDefault().getPath(root), new DirectoriesFilter())) {
for (Path p : ds) {
System.out.println(p.getFileName());
}
} catch (IOException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
149762 次 |
最近记录: |