首页 > 解决方案 > 如何在非标准文件中嵌入元数据?

问题描述

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

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

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

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

有没有一种实用的方法可以将字符串值作为元数据写入文件,而无需了解文件的任何信息,而不是我可以用 c# 发现的内容?

标签: c#metadatavisual-studio-2019

解决方案


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

您不能以任何方式更改固件更新文件,特别是如果您不知道文件格式如何。它很可能会破坏固件更新。


推荐阅读