Java 和文件列表

标签 java file-io io

我应该获取目录中包含的文件列表。

我所做的是:

    File file = new File(PATH);
    for (File index:file.listFiles)
        System.out.println(index.toString());

问题是,这样做时我还会打印一些我不应该看到的文件,例如临时文件。

在我的测试目录中,我必须文件:ciaotest,但是当我运行代码时,我看到ciao ciao~test~,以及其他内容(如果我修改文件)(我想它们是缓冲文件)。

那么,我怎样才能只获取true文件,就像我正在浏览我的文件系统一样?

最佳答案

如果您只想列出属性(包括名称)遵守一组条件的文件,则需要使用另一个版本的 .listFiles() ,它采用 FileFilter 作为参数。该接口(interface)有一个唯一的 accept() 方法,如果可以列出文件,该方法将返回 true。

这个简单的示例将过滤掉名称以 ~ 结尾的文件:

file.listFiles(new FileFilter() {
    @Override
    public boolean accept(File pathname) {
        return !pathname.getName().endsWith("~");
    }
})

如果您的FileFilter比上面的更复杂,请考虑将其外部化为一个变量(private static final如果过滤器永远不会改变)。

关于Java 和文件列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14267362/

相关文章:

java - 如何在 Tomcat 7 中以编程方式检索登录配置?

python - 如何将文件读入多个列表

java - 删除行后无法将 temp.txt 重命名为original.txt

C:将文件作为参数传递

java - 处理 hibernate/DAO 问题

java - Twitter4j:身份验证凭据 (https://dev.twitter.com/pages/auth) 丢失或不正确

Java串口读取如何删除?

C++ 可能的内存泄漏读取文件

c - 将文件读入链表

java - java一次从文件中读取x个字节