0
File updateDirectory = new File("NewFolder");
        if (updateDirectory.isDirectory()) {
            if (updateDirectory.list().length > 0) {
                JOptionPane.showMessageDialog(null, updateDirectory.list().length);}}}

在 windows 中显示 1,在 mac 中将文件放在“NewFolder”中时显示 2。我该如何解决这个问题。谢谢

4

1 回答 1

4

在 Mac 上,您可能在将文件放入文件夹时创建了一个“.DS_Store”文件。以“.”开头的文件 在 Mac 上是隐藏的,因此您无法在 Finder 中看到它。

根据您想要实现的目标,您可能想要忽略所有“.DS_Store”文件或所有以“.”开头的文件。

以下是忽略这些文件的方法:

    updateDirectory.list(new FilenameFilter() {
        @Override
        public boolean accept(File dir, String name) {
            return name.startsWith(".");
        }
    });

要找出答案,您可以打印出从list()方法中获得的数组。

请注意,在 Windows 上,文件以“.”开头。没有隐藏,因此您可能会混淆您的用户。我建议谨慎实施过滤器 - 甚至可能使用特定于操作系统的变体。

于 2013-06-05T11:50:27.777 回答