为什么 Windows 资源管理器不显示文件的创建或修改日期?

为什么 Windows 资源管理器不显示文件的创建或修改日期?

我翻录了一些华纳兄弟的动画片,然后使用 MacOS 的touch -t命令将文件的创建和修改日期设置为动画片的发布日期。(这是为了让 Plex 显示视频的正确年份。)当我在 Windows 10 计算机上使用文件资源管理器查看 Mac 上存储文件的目录时,它没有显示创建或修改日期:

在此处输入图片描述

但如果我打开任何文件的属性,就会显示创建和修改日期:

在此处输入图片描述

如何让文件资源管理器显示创建和修改日期?

答案1

正如 Tetsujin 通过实验推断的那样,SMB 协议在某些地方传输的时间戳确实受到限制。在通用互联网文件系统协议规范,可获得以下信息:

2.2.1.4.1 SMB_DATE

这是用于对日期进行编码的 16 位小端字节序值。SMB_DATE 值应按以下方式解释。日期以服务器的本地时区表示。以下字段名称仅供参考。

字段名称和位掩码 描述
年份 0xFE00 年份。将 1980 添加到结果值中以返回实际年份。<17>
月 0x01E0 月份。值范围是 1 至 12。
第 0x001F 天 日期。值范围是 1 到 31。

第 17 条注释如下:

SMB_DATE.YEAR 字段允许的最大值为 119,因此年份范围是 1980 至 2099。

还:

2.2.1.4.3 时间

这是一个 32 位无符号整数,采用小端字节顺序,表示自 1970 年 1 月 1 日 00:00:00.0 以来的秒数。

该类型声明如下:

typedef unsigned int UTIME;

优泰是“现代”的变体,而SMB_DATE主要用于已弃用的旧式命令。

然而,这还不是全部。在其他地方,文件时间类型描述如下:

包含一个 64 位值,表示自 1601 年 1 月 1 日(UTC)以来 100 纳秒间隔的数量。

因此,Explorer 可以使用其中一种旧类型来列出目录,但在查询扩展元数据(包括 ACL)时使用其中一种新类型。


无论如何,从客观的角度来看,你的做法是错误的。文件系统元数据(如修改后的数据)与文件内容无关。它与文件有关。你可以添加正确的信息里面使用标签来标记文件。MP4 和 MKV 容器均支持此功能。

不过,媒体中心软件可能不会看到这一点。因此,您应该在文件名中添加年份,例如“Sahara Hare (1955).mkv”。所有媒体中心软件都普遍接受这一点。

相关内容