java - 获取目录中的文件名

标签 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;
}

最佳答案

此代码将准确返回位于名为“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());

关于java - 获取目录中的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25341219/

相关文章:

java - 通过 java 客户端的 netty websocket 连接

java - 无法在 getInstance() 中传递 Context

java - 我怎样才能避免计算器异常

java - 使用 map 惯用地进入 Java 8 流?

Java Eclipse,如果包含多行,则在方法之后换行?

java - 检查日期是否重叠并返回最大计数

java - new URL(...).openConnection() 是否一定意味着 POST?

java - 数组 Object[]::new 的方法引用

Java 8 : Convert dates using stream

java - 为什么不能并行减少流流?/流已经被操作或关闭