什么可以改变文件的创建/修改日期?

4
我正在使用C#将文件修改日期作为文件名的基础。我的问题是什么会导致修改日期发生变化?
我一开始以为修改日期就是创建日期。但是当我将文件从USB移动到硬盘时,创建日期也发生了改变。所以我只能使用修改日期,它具有正确的未更改日期。
我本来认为,当文件被移动时,修改日期会发生变化,但实际上在Windows 7中改变的是创建日期。
除了从压缩文件中解压缩文件之外,是否存在任何可能更改文件日期的用例?比如从DVD到硬盘等?
最好的问候 罗伯先生

当您以写访问权限打开文件并保存后,或者当您刚开始编写文件时。 - Ian
2
你应该意识到,在不同文件系统之间“移动”文件时,实际上是复制+删除的过程。也就是说,创建新文件,删除旧文件。因此,你会得到一个新的创建日期和修改日期。而在同一文件系统内部进行移动只需要更新某个指针,告诉操作系统/文件系统文件已经在新位置了。 - Marc B
代码。实际上,任何其他的代码都可能选择更改文件的时间戳。 - Damien_The_Unbeliever
@MarcB:通常情况下,创建日期会改变,但修改日期不会改变,因为CopyFile()会将修改日期从原始文件复制到目标文件。 - Harry Johnston
2个回答

11

有关文件属性及日期和时间戳

  • 如果你将一个文件从C:\fat16复制到C:\fat16\sub,它将保留相同的修改日期和时间,但创建日期和时间将改为当前日期和时间。
  • 如果你将一个文件从C:\fat16移动到C:\fat16sub,它将保留相同的修改日期和时间以及创建日期和时间。
  • 如果你将一个文件从C:\fat16复制到D:\NTFS,它将保留相同的修改日期和时间,但创建日期和时间将改为当前日期和时间。
  • 如果你将一个文件从C:\fat16移动到D:\NTFS,它将保留相同的修改日期和时间以及创建日期和时间。
  • 如果你将一个文件从D:\NTFS复制到D:\NTFS\SUB,它将保留相同的修改日期和时间,但创建日期和时间将改为当前日期和时间。
  • 如果你将一个文件从D:\NTFS移动到D:\NTFS\SUB,它将保留相同的修改日期和时间以及创建日期和时间。
  • 在所有示例中,除非文件的属性发生了变化,否则文件的修改日期和时间不会改变。文件的创建日期和时间取决于是复制还是移动了文件。

更多信息请参见KB299648


最后访问时间戳无论是移动还是复制都会发生改变。 - ns15
有没有办法从未复制的文件中获取“原始创建日期/时间”,或者在复制文件时是否丢弃了这些信息? - D.R.

0

我相信只要文件内容发生变化,修改日期就会随之改变。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接