获取目录中的文件名

时间:2014-08-16 14:40:22

标签: java java-8

我正在使用此代码获取目录中的所有文件。但是使用这段代码我得到了文件名和目录路径。你能帮我修改代码只返回没有文件路径的文件名列表。

public List<String> getAllDirFiles() {
    List<String> fileNames = new ArrayList<>();
    try (DirectoryStream<Path> directoryStream
            = Files.newDirectoryStream(Paths.get("repository"))) {
        for (Path path : directoryStream) {
            fileNames.add(path.toString());
        }
    } catch (IOException ex) {}
    return fileNames;
}

2 个答案:

答案 0 :(得分:3)

此代码将准确返回位于名为“repository”的目录中的文件名列表。我特意使用了Java Streaming API,因为问题的标签是java-8

List<String> fileNames = Files.list(Paths.get("repository"))
        .filter(Files::isRegularFile)
        .map(Path::getFileName)
        .map(Object::toString)
        .collect(Collectors.toList());

答案 1 :(得分:0)

不使用path.toString(),而是使用path.getFileName().toString()