[Java] 如何在目錄/文件夾中查找子目錄?



Answers

如果你在Java 7上,你可能想嘗試使用提供的支持

package java.nio.file 

如果你的目錄有很多條目,它將能夠開始列出它們,而不必先將它們全部讀入到存儲器中。 在javadoc中閱讀更多內容: http : //docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html#newDirectoryStream( java.nio.file.Path,% 20java.lang.String )

這也是適合您需求的例子:

public static void main(String[] args) {
    DirectoryStream.Filter<Path> filter = new DirectoryStream.Filter<Path>() {
        @Override
        public boolean accept(Path file) throws IOException {
            return (Files.isDirectory(file));
        }
    };

    Path dir = FileSystems.getDefault().getPath("c:/");
    try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir, filter)) {
        for (Path path : stream) {
            // Iterate over the paths in the directory and print filenames
            System.out.println(path.getFileName());
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}
Question

我正在尋找一種方法來獲取給定目錄中的所有目錄名稱,但不是文件。

例如,假設我有一個名為Parent的文件夾,裡面有3個文件夾: Child2Child3

我想獲取文件夾的名稱,但不關心內容,或Child1,Child2等內的子文件夾的名稱。

有一個簡單的方法來做到這一點?




Links