微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用出生时间作为唯一的文件标识符? 节点 fs.stat

如何解决使用出生时间作为唯一的文件标识符? 节点 fs.stat

我正在寻找一种使用 nodejs 识别文件方法,即使文件名和/或文件路径已更改,该方法也能正常工作。我希望有一个跨平台的解决方案(或者至少是 Mac 和 Windows;Linux 会很好)。

我首先希望 ino(即 inode,与 fs.stat(file) 一起返回)可以用作唯一的文件标识符。 (关于 herehere 的讨论)。但看起来 inode 在 Windows 上不可靠(状态不清楚,以 64 位呈现),即使在 Mac 上,我也看到在保存对文件的更改时文件的 inode 可能会更改。

所以我需要一些文件独有的东西,它不会改变。 从 fs.stat 返回的 birthtime(或 birthtimeMs)怎么样?

这是创建文件的时间,精确到毫秒。它在 Mac 上似乎没有变化,(也许?)在 Windows or Linux 上似乎也没有变化。 (似乎 Mac、Windows 和更新的 Linux 支持 birthtimeMs。)

并且出生时间对于每个文件都是唯一的,只要用户一次只能创建一个文件文件创建时间之间的差异至少超过 1 毫秒)。

那么,是否可以将出生时间用作 Mac 和 Windows(也许还有 Linux)上的唯一文件标识符?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。