hip*_*ail 7 filesystems timestamp cross-platform stat node.js
我最近了解到,不同的操作系统甚至同一操作系统下的不同文件系统都支持lstat.
返回的Stats对象给了我们四次,每次都有两种不同的味道。
js日期对象:
atime:自 POSIX Epoch 以来该文件最后一次被访问的时间以毫秒表示mtime: 最后一次修改这个文件...ctime: 上次更改文件状态...birthtime:这个文件的创建时间( atimeMs, mtimeMs, ctimeMs, 和birthtimeMs是上述每个的 js 日期对象版本)
“已修改”表示文件的内容通过写入等方式发生了更改。“已更改”表示文件的元数据(例如所有者和权限)已更改。
Linux 传统上从不支持出生时间的概念,但随着更多更新的文件系统确实支持它,如果我没有正确阅读,它最近已经添加了对 Linux 堆栈的所有相关层的支持。
但是 Windows 和 Mac 都像它们的原生文件系统一样支持出生时间。
另一方面,Windows 传统上不支持与文件修改分开的文件更改概念。但是为了符合 POSIX,它增加了对 API 级别和 NTFS 的支持。(尽管它似乎没有在 GUI 或命令行中的任何地方公开)。FAT fs 不支持。
当我lstat在 NTFS 驱动器上调用Windows 上的文件时,结果ctime看起来不错。当我在 FAT 驱动器上的文件上调用它时,它ctime包含垃圾。(就我而言,它始终2076-11-29T08:54:34.955Z适用于每个文件。)
我不知道这是不是一个错误。
我不知道birthtimeLinux 在不支持它的文件系统上会返回什么。希望null或者undefined但也许也是垃圾。我也不知道 Linux 或 Macctime为 FAT 卷上的文件返回什么。
那么,Node 中是否有一种方法可以获取有关给定文件/路径/fs 支持哪些功能的信息?
| 归档时间: |
|
| 查看次数: |
749 次 |
| 最近记录: |