File.listFiles只列出带点扩展名的文件

时间:2017-03-28 21:09:10

标签: java

典型的文件列表很好。

myfile.txt的

按预期返回。

MYFILE

没有扩展名的

不会返回文件对象。

Windows 7,Java JDK6 - 更新不是一个选项:(

有趣的是,无扩展名文件也不会显示为目录。

File dir = new File("c:/somedirectory/");
File[] returnFiles = dir.listFiles();

根据要求添加了代码。期待数组中的2个文件并获得一个。

1 个答案:

答案 0 :(得分:1)

我参考了Java 6文档(https://docs.oracle.com/javase/6/docs/api/java/io/File.html)。从java 6到java 8的类File没有太多变化。

所以我在Unix上用Java 7和Java 8执行了一小段代码。

    File dir = new File("/Users/somedirectory");
    File[] returnFiles = dir.listFiles();
    String[] files = dir.list();

    for(File f:returnFiles ){
        System.out.println(f.getName());
    }

    for(String f:files ){
        System.out.println(f);
    }

我的观察是第一个循环返回所有文件,包括隐藏文件以及普通文件和无扩展文件。而第二个返回所有文件和目录的标签/名称。

所以我假设无扩展文件由于某种原因可能被视为目录而不是文件。