我通常认为,在按时间顺序对组织内大型共享驱动器中的文件进行搜索/浏览时,使用“创建日期”而不是“修改日期”更合适。最近我注意到,在覆盖文件时,“创建日期”属性是持久的,即使完全删除了上一个文件也是如此。
我曾假设二进制文件上存在一些 GUID 约束,同样定义了文件的创建日期。但事实显然并非如此……
问题
- “创建日期”指的是文件的哪个属性?
- 在什么情况下可以修改/重新定义该属性?
1_空新文件夹_1020
2_FileaNewSave_1039
3_SaveFilebOverFilea_1046
4_FilebOverwritesFileaButDateCreatedDoesNotChange_1047
5_SaveNonCsvFileTypeOverFilea_1408
6_MsExcelOpenFilecAndDateCreatedIsStillPersistent_1409
答案1
理论上,“文件创建”时间是指文件系统中特定数据节点的创建时间。此数据的值(文件内容)和此数据的路径(文件名/位置)无关紧要。因此,重命名文件不会更改其创建日期,编辑文件也不会更改。就此而言,创建文件的硬链接(创建指向磁盘上相同数据的新路径名)将导致硬链接具有与原始文件相同的创建日期;这是访问同一节点的另一种方式,并且节点的创建时间没有改变。另一方面,复制文件会将当前时间作为副本的创建日期(因为副本存储在磁盘上的不同位置),并且跨文件系统移动文件(例如,从闪存驱动器移动到内部驱动器)也会更改创建时间(除非执行此移动的实用程序恢复原始时间)因为目标文件系统必须为到达的文件创建一个新节点。
最后,如果你删除一个文件然后再次创建它,它应该获取新的创建时间。毕竟,新文件实际上是刚刚创建的,并且不映射到文件系统中任何预先存在的数据。事实上,如果在删除和重新创建之间等待足够长的时间,就会发生这种情况。
但是,有时文件创建时间不会按预期更新。特别是,当一个文件被删除或重命名,而另一个文件被创建或重命名为旧名称时,第一个文件的创建时间将应用于第二个文件。Windows 中这个有点奇怪的功能是为了与旧的 DOS 技术兼容,用于“安全”修改文件,即将新数据写入临时文件,删除原始文件,然后将临时文件重命名为原始文件的名称。为了支持这一点,Windows 默认会在文件被删除或重命名后记住一段时间(30 秒左右?)的文件创建时间。您可以在此处找到有关它的更多信息:https://www.betaarchive.com/wiki/index.php?title=Microsoft_KB_Archive/172190