java - 获取文件元数据的开销(上次修改日期)

标签 java filesystems

我是否正确假设 java.io.File(file).lastModified() 不会导致文件本身以任何方式加载,因此开销最小?这是一个非常基本的问题,但我找不到任何关于它的好的信息。

设置最后修改日期应该几乎没有任何开销,对吧?

如果我理解正确的话,这个元数据是与文件分开存储的,所以如果我没有弄错的话,读取和写入这些数据应该不会花费太多,但只是想确保我将它用作中心基础缓存机制。


根据迄今为止的评论和回复,这是否意味着仅针对我的文件使用过滤器进行目录列表会更高效?恕我直言,这听起来性能较差。

最佳答案

java.io.File(file) 返回一个 File 对象。这样文件对象就被实例化了。

每次调用 file.lastModified() 时,它都会以 native 方法调用 java.io.UnixFileSystem.getLastModifiedTime(File) 结束。

同样,每次您调用时都会发生这种情况。

所以这是您关心的开销部分。

关于java - 获取文件元数据的开销(上次修改日期),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16256285/

相关文章:

filesystems - 如何在 Qore/Qorus :/or\? 中获取文件分隔符

html - 从 html5 文件系统 api 加载资源

java - log4j 不压缩日志文件

java - RabbitMQ - 只有一个队列,多个消费者接收不同的消息

.net - 我应该如何轮询大量文件以进行更改?

Windows 中的 Java : files in a directory ordered with a specific name

C++ std::filesystem::filesystem_error 异常试图读取系统卷信息等

java - 包含 Eureka 时, Autowiring RestTemplate 会导致 "argument type mismatch"

java - JavaFX 中的渐变

java - 从 LinkedHashMap 构建有序的 JSON 字符串