显示 100 纳秒粒度的 NTFS 时间戳
据我所知,FAT 文件系统以 2 秒的粒度存储文件时间戳(修改日期等),而 NTFS 以 100 纳秒的粒度存储它们。
我使用 VBScript 和 FileSystemObject 来显示文件详细信息。函数 file.DateLastModified 以 1 秒精度显示日期(在 NTFS 上)。
有没有办法根据NTFS的内部存储粒度来精确地显示时间戳。我想象类似 8/9/2010 14:40:30,1234567
如果不使用 VBScript / FileSystemObject,还有其他方法吗?
I understand that the FAT file system stores its time stamps for files (modify date, etc.) with a 2 second granularity, and NTFS stores them with a 100 nsec granularity.
I'm using VBScript with FileSystemObject to show file details. The function file.DateLastModified shows me the date with a 1 second precision (on NTFS).
Is there a way to show the time stamps with a precision according to the internal storage granularity of NTFS. I'm imagining something like 8/9/2010 14:40:30,1234567
And if not with VBScript / FileSystemObject, would there be any other way?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
文件时间戳在 NTFS 中以 FILETIME 形式保存,但毫秒部分不会传递给 Variant DateTime,因此 VBS 看不到它。不过 WMI 对象可以支持这一点。
File timestamps are held as FILETIME in NTFS but the millisecond portion is not passed to the Variant DateTime so VBS doesn't see it. The WMI object can support this though.
通过本机 Windows API 可以轻松访问全精度文件时间。此 MSDN 文章介绍了如何执行此操作:文件时间。
我不知道有什么方法可以从 VBS 读取 64 位 FILETIME,特别是因为 VBS 本身不处理 64 位数字。有了 FILETIME 后,您可以使用 SWbemDateTime 解析它,不过。这是一个示例。
Full-precision file times are easily accessible via the native Windows API. This MSDN article explains how to do it: File Times.
I do not know of any way to read the 64-bit FILETIME from VBS, especially since VBS does not handle 64-bit numbers natively. Once you have a FILETIME you can parse it with SWbemDateTime, though. Here is an example.