Jos*_*ley 8 windows filesystems stat
Windows是否提供类似POSIX stat的st_ctime字段,它给出了上次元数据更改的时间戳?
背景:我有一些数据文件,我想检查它们是否自特定时间戳以来被修改过.检查修改后的时间戳(mtime)很容易,并负责"正常"修改,但如果用户复制旧版本的数据文件,则修改后的时间戳将显示它们更旧.在POSIX系统上,复制旧文件会导致ctime更新,即使mtime更旧.
据我所知,Windows确实提供了“最后更改”字段,但我还没有找到任何用于访问它的Win32 API,因此您必须使用Native API。
具体来说:(我实际上还没有尝试过。)
FileInformationClassFileNetworkOpenInformationFILE_NETWORK_OPEN_INFORMATIONChangeTime结构的成员相当于POSIX ctime。使用 Native API 并不那么简单。 这个问题和答案描述了如何做到这一点。
Cygwin利用这一点在 Windows 下提供 POSIX 语义,如其邮件列表中所述。我从他们的实施中获取信息。
虽然只是无关紧要,但本文对 Windows 确实提供的“创建”时间戳(不幸的是称为 ctime)进行了很好的描述。如果文件被复制到新位置,则创建的时间戳可以比修改的时间戳更新(因为创建后是指创建副本的时间,而修改是指上次修改原始文件的时间),但否则不会更新元数据已更改。
| 归档时间: |
|
| 查看次数: |
661 次 |
| 最近记录: |