2

java.io.File.length() 的 javadoc 指出:

返回此抽象路径名表示的文件的长度。如果此路径名表示目录,则返回值未指定。

我一直在 Solaris 上进行测试,这似乎是基于目录中文件的数量,但它总是返回比包含“。”的文件\文件夹更大的数量。文件。

有谁知道这个值在 Solaris\Linux\OSX\Windows 上意味着什么?它可能是特定于操作系统的,但很高兴知道它是否有任何价值!

编辑:

我同意那些建议这不是应该用于“一次编写,随处运行”Java 方法的功能的评论,但是由于返回的值不是 0L(它可能在某些操作系统上,但不是 Solaris)我有兴趣知道该值所指的内容。

本机 Java 调用通常是直接的单个 OS 过程,因此无论值是指什么都有一定的意义,您可以免费获得它,而无需加载更多的 java.io.File(s)。

4

1 回答 1

2

File.length 主要用于确定文件的大小。它永远不应该用于确定目录中的文件数。JavaDocs 状态未定义的事实应该已经触发了警钟。

如果您不知道目录中的文件数,则应使用File.listFiles代替(或其替代方案之一)

于 2012-09-14T22:32:28.790 回答