簡體   English   中英

獲取文件元數據的開銷(上次修改日期)

[英]Overhead of getting file metadata (last modified date)

我是否假設java.io.File(file).lastModified()不會以任何方式加載文件本身並因此將開銷降至最低,這是正確的嗎? 這是一個非常基本的問題,但是我找不到關於它的任何好信息。

設置最后修改日期應該幾乎沒有開銷嗎?

如果我正確地理解了該元數據,則該元數據與文件分開存儲,因此,如果我沒有記錯,讀寫該數據應該不會花費太多,而只是要確保將其用作緩存的主要基礎機制。


根據到目前為止的評論和答復,這是否意味着使用僅針對我的文件的過濾器進行目錄列出會更有效? 因為這聽起來表現不佳恕我直言。

java.io.File(file)返回一個File對象。 因此,文件對象被實例化。

每次您調用file.lastModified()它都會以本機方法調用java.io.UnixFileSystem.getLastModifiedTime(File)

同樣,每次調用時都會發生這種情況。

因此,這是您關注的開銷部分。

對此我不確定。 根據javadoc:

File.lastModified()-“一個較長的值,表示文件的上次修改時間,以自紀元(00:00:00 GMT,1970年1月1日)開始的毫秒數為單位; 如果文件不存在,或者發生I / O錯誤

我認為這最后一句話意味着要加載的文件。 您應該嘗試刪除文件或將其從代碼中編寫的路徑中移出,然后嘗試執行File.lastModified()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM