我有一个文件夹,需要按日期对其中的项目进行排序。
最近我将此文件夹复制到了一个新位置。我使用链接外壳扩展制作副本,其内容如下:
复制
文件和文件夹上的替代流
文件和文件夹上的 EA 记录(很少使用)
重新解析信息
文件属性
时间戳:创建时间、上次访问时间、上次写入时间
稀疏文件和替代稀疏流
加密文件
ACL
我也通过 Android 手机上的 SMB 共享访问它。那里的应用程序也可以按日期排序。但是它显示的日期我在文件中的任何地方都找不到。它们不是创建/修改/访问的日期。Windows 资源管理器中没有包含该日期的详细信息列。这是复制的时间。也许很明显,这种行为仅在复制时才会观察到。如果移动(剪切)文件,日期将保留。
有人能解释一下吗?文件中存储了什么样的日期时间?
(注意:这 100% 与 Android 端无关,请不要走那条路。)
另外,“访问日期”有什么用?当我打开文件时,它似乎没有改变。
答案1
但错误报告的日期与复制的时间相符。[...] 为什么它恰好是复制的时间而不是其他随机时间?
这是复制的时间。也许很明显,这种行为仅在复制时才会出现。如果文件被移动(剪切),日期会保留。
仔细重读后,您的描述与 Windows 中“创建日期”时间戳的工作方式完全匹配。
如果文件被移动(在同一卷内),它们仍是相同的文件并保留所有属性。但如果文件被复制,则目标是一个全新的文件,并且仅保留复制程序所保留的属性手动延续。(没有“复制整个文件”系统调用。)
因此,尽管 Explorer 手动将“修改”时间戳从原始文件转移到副本,但“创建”时间戳却故意保留原样,并表示何时这个特定的文件系统对象已创建。
它们不是创建/修改/访问的日期。Windows 资源管理器中没有包含该日期的详细信息列。
您很可能查看了错误的文件,例如检查原始文件的时间戳而不是副本的时间戳。
在我撰写本文时测试过的所有 Windows 版本中(从 Win98 到 Win10.1903 和 Win2016),资源管理器详细信息视图中的“创建日期”列和属性对话框中的“创建”字段始终代表此特定副本的制作时间。