我有一个 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
那么,澄清一下:
- 在另一个磁盘上制作副本。每个文件都有新的创建日期。
- 删除原始文件夹
- 将新文件夹移回原始磁盘。
这是另一个工具:BulkFileChanger v1.51 版权所有 (c) 2010 - 2017 Nir Sofer 网站:http://www.nirsoft.net
描述
BulkFileChanger 是一个小型实用程序,它允许您从多个文件夹创建文件列表,然后对它们进行一些操作 - 修改它们的创建/修改/访问时间,更改它们的文件属性(只读,隐藏,系统),以这些文件作为参数运行可执行文件,以及复制/剪切粘贴到资源管理器中。
BulkFileChanger 是旧版 FileDate Changer 实用程序的替代品。