如何在非标准文件中嵌入元数据?

How do I embed meta data in a non-standard file?

我需要编写代码从各种来源接收固件更新文件(什么都没有,甚至没有文件扩展名)并将它们传递到云端,以便我们的软件可以将它们下载到各个机器。

作为流程的一部分,前端需要为用户提供更丰富的体验,因此我需要包含诸如版本号、上次文件更新批准时间等信息,以及其他一些信息关于谁负责更新。

我被指示将数据作为 "meta-data" 传递,这样我们就不必包含两个文件,在这一点上这似乎不是一个非常可行的选择。我整天都在研究元数据。 TagLib 仅适用于媒体文件。我可以使用 Microsoft API 代码包来读取一些属性,但它不会让我写任何东西。

shell32 选项看起来是唯一的其他可能性,但我不知道如何写入它。我在 VS 2019 中使用 C# 代码,目前是 .NET Framework 4.6.1,但我想我们即将升级到 4.8。

有没有一种实用的方法可以将字符串值作为元数据写入文件,而无需比我用 c# 发现更多关于文件的信息?

如果您不想提供带有元信息的其他文件或位置,您可以创建一个新的单个文件,其中包含您的元数据和实际固件更新。将其视为一个 ZIP 文件,其中包含固件更新文件和其他一些包含元信息的文件。这样您将只有一个文件可以发送,但它包含您以后需要的所有信息。

您无法以任何方式更改固件更新文件,尤其是在您不知道文件格式的情况下。它很可能会破坏固件更新。