一个非常古老但有趣的问题,没有答案!
为了使文件包含元数据,它必须具有某种格式(隐式或显式)来描述元数据的存储位置和方式。
这可以通过格式来完成,例如具有说明“主要”数据存储在哪里以及“元数据”存储在哪里的标题,或者可能是隐式的,例如具有“主要”数据的长度,并存储元数据作为“主要”数据之外的任何内容。
这也可以由操作系统/文件系统通过将信息与文件一起存储来完成,例如权限信息、修改时间、用户以及更全面的文件信息,例如 iOS/Windows 中的“图标”。
(请注意,我在“main”和“metadata”周围使用“引号”,因为现实情况是它都是数据,需要以某种方式存储,以便工具可以检索它)
真正的文本文件不包含任何标题或任何此类文件格式,本质上只是一个连续的字符块(不管操作系统如何存储它)。这也意味着它通常可以由任何文本编辑器打开,它只会读取并显示它找到的所有字符。
所以从某种意义上说,答案是你不能,至少不能在真正可移植到多个操作系统的真正文本文件上。
关于如何解决这个问题的一些想法:
在文本文件的末尾使用二进制文件,希望/要求他们的文本编辑器将忽略非 ascii。
将其存储在文件的操作系统元数据中并使其特定于操作系统(例如将其存储在操作系统可能对文件具有的“注释”部分中。
将其存储在与文件“一起”的单独文件中(即,file.txt 和 file.meta),并希望它们将文件保存在一起。
将其存储在一个单独的文件中,并将文本和元文件压缩在一起,让您的工具能够识别 zip。
想出一种新的文件格式,它不仅是文本,而且有一个文本部分(尽管它不能再用文本编辑器编辑)。
将元数据以文本格式存储在文本文件的末尾,可能带有注释或一些指示符,以单独保留元数据。这类似于 vi/vim 文本编辑器用于将 vim 命令嵌入文件的技术,它只是将它们作为注释放在文件的开头或结尾。
我不确定还有很多其他方法可以完成您想要的,但也许其中一种会起作用。