描述

描述

我有一个 Windows 文件夹 A(包含一些文件/文件夹),其创建日期和修改日期为 2023 年 11 月 23 日下午 5:26

我有另一个 Windows 文件夹 B(包含一些文件/文件夹),其创建和修改日期为 2023 年 11 月 27 日下午 6:35

我于 2023 年 12 月 20 日下午 3:55 将文件夹 A 移动到文件夹 B,但它并没有改变文件夹 A 的创建日期或修改日期。

当我检查时,我可以看到文件夹 B 的修改日期为 2023 年 12 月 20 日下午 3:55,但文件夹 A 的创建日期和修改日期没有改变。

我如何知道 Windows 文件夹 A 已移动到文件夹 B,并且已于 2023 年 12 月 20 日下午 3:55 移动

谢谢

答案1

在同一文件系统内移动文件夹实际上不会改变文件夹或其内容。
它只是附加到不同的父文件夹,并且只有父文件夹(旧位置和新位置)被修改。
一个会丢失一个子文件夹,另一个会获得一个子文件夹。

实际上,你无法(从文件夹本身)判断它是否在其生命周期的某个时刻被移动过。

据我所知,没有办法在文件系统级别可靠地跟踪这一点。

答案2

解决方案 1

  • 在文件夹 B 中创建与文件夹 A 同名的新文件夹 C
  • 将文件夹 A 的内容移动到文件夹 C
  • 删除文件夹 A

文件夹 C 将保留其创建日期,而内容将保留其原始日期。您将丢失文件夹 A 的“创建日期”

解决方案 2

  • 将文件夹 A 移动到文件夹 B
  • 将文件夹 A 重命名为文件夹 A1
  • 将文件夹 A1 重命名为文件夹 A

这样,您将保留文件夹 A 的原始“创建日期”,并且在第二次重命名时您将获得“修改日期”。

但是 Windows 中没有功能可以告诉您“此内容已于日期 x 从 K 移动到 B”

答案3

虽然上述答案足以解决根本问题,但未提及的问题是为什么会发生这种情况。这不仅发生在 Windows 中,也发生在 Linux 中,并且与文件表中的文件指针有关。

当您在文件系统中创建文件时,数据会以一串位的形式存储在文件系统中的某个位置。但是,磁盘需要能够找到此数据块才能检索文件。此信息作为指向文件开头的文件指针存储在文件表中。文件表是位于磁盘开头的特殊文件,其中包含有关磁盘上每个文件的位置的信息,以及有关它的信息,例如创建时间以及它在文件结构中的位置。

当您将文件从一个目录移动到另一个目录时,有趣的是文件的数据仍保留在原处。相反,文件表会更新为文件结构中的新位置。因此,创建时间不会更新,因为没有创建新文件,它仍然是原来的文件。只是从语义上来说,它被视为位于不同的文件夹中,以供您使用。

移动文件夹时也会发生同样的事情。为什么会这样?因为文件夹也是一种特殊的文件,文件表在确定文件系统中某个内容的语义位置时会指向它。

复制文件时,文件系统必须制作该文件的第二份副本,现在文件表中有一个新文件,其创建时间也发生了变化。如果您随后删除原始文件,则只剩下副本。这就是 Tonny 和 1NN 的解决方案的工作原理。他们不是在教您如何移动文件,而是教您如何创建副本并删除原始文件。

另外,请注意,所有这些信息都是关于将文件移动到同一磁盘上的新位置。如果您将其移动到不同的磁盘,则会导致复制,然后删除,正如您所期望的那样,并且根据实现方式,可能会更新文件创建时间。

答案4

那么,澄清一下:

  1. 在另一个磁盘上制作副本。每个文件都有新的创建日期。
  2. 删除原始文件夹
  3. 将新文件夹移回原始磁盘。

这是另一个工具:BulkFileChanger v1.51 版权所有 (c) 2010 - 2017 Nir ​​Sofer 网站:http://www.nirsoft.net

描述

BulkFileChanger 是一个小型实用程序,它允许您从多个文件夹创建文件列表,然后对它们进行一些操作 - 修改它们的创建/修改/访问时间,更改它们的文件属性(只读,隐藏,系统),以这些文件作为参数运行可执行文件,以及复制/剪切粘贴到资源管理器中。

BulkFileChanger 是旧版 FileDate Changer 实用程序的替代品。

相关内容