【问题标题】:What can change a file created/modified date?什么可以更改文件的创建/修改日期?
【发布时间】:2016-06-24 00:20:28
【问题描述】:

我在 C# 中使用文件修改日期作为文件名的基础。我的问题是什么可以使修改日期改变? 我实际上认为修改日期首先是创建日期。但是当我将文件从 USB 移动到硬盘时,创建日期正在改变。所以我不得不使用修改后的日期,它有正确的、未修改的日期。

正如我在移动文件时所想的那样,修改日期已更改,但实际上它的创建日期至少在 Windows 7 中已更改。

是否有任何用例可能会令人惊讶地更改文件的日期(从压缩文件中解压缩文件除外)?就像从 DVD 到硬盘驱动器或类似的东西?

最好的问候 罗先生

【问题讨论】:

  • 当您以写入权限打开文件并将其保存回来或刚开始写入文件时。
  • 您确实意识到在文件系统之间“移动”文件时,移动就是复制+删除?创建新文件,删除旧文件。因此你得到一个新的创建日期和一个新的修改日期。在文件系统内移动只是在某处更新指针以告诉操作系统/文件系统该文件位于新位置
  • Code。从字面上看,任何其他代码可以选择更改文件的时间戳。
  • @MarcB:通常情况下,创建日期会改变,但修改日期不会,因为 CopyFile() 会将修改日期从原始日期复制到目标位置。

标签: c# windows file


【解决方案1】:

关于日期和时间戳的文件属性

  • 如果将文件从 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

【讨论】:

  • 最后访问标记,但是移动和复制都会发生变化
  • 有没有办法从非复制文件中获取“原始创建日期/时间”,还是在复制文件时丢弃此信息?
【解决方案2】:

我相信随着文件内容的改变,修改日期也会随之改变。

【讨论】:

    猜你喜欢
    • 2021-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-27
    • 2022-11-09
    • 2021-11-24
    • 1970-01-01
    相关资源
    最近更新 更多