我想为文件存储一些与应用程序相关的元数据,而NTFS备用数据流(AltDS)允许我将这些元数据直接存储在文件上,而不是存储在单独的数据库中.
我觉得这不是一个好主意.我知道这只适用于NTFS,但至少如果用户将文件复制/移动到非NTFS驱动器,他们会从Windows获得警告(是的,是的,没有人读警告,我知道) -
但是,在文件上存储其他数据可能会变得非常浪费,因为即使卸载了我的应用程序,AltDS也会保留.就像十年前人们使用"注册表清理工具"在卸载程序后从注册表中删除无用的条目,以使他们的系统运行得更快(当清理器清理得太多时不太稳定......).
我只是想知道它们可以合理地用于什么?它们应该完全留给Microsoft Apps使用吗?或者是否有某种类型的应用程序可以使用它们的某些共同策略(除了恶意软件)?
编辑:只是为了澄清我的想法.我正处于为自己编写小型文档管理系统的早期阶段.因为我想有自由移动文件,我想在文件上存储元数据,这样如果我移动/重命名/修改它们,我的应用程序仍然可以识别它们.它可以是整个元数据,也可以只是与单独数据库一起使用的GUID.
总结给出的要点:
优点:
缺点:
如果没有有关您存储的数据类型的更多信息,很难说。您似乎意识到了涉及它们使用的一些问题,所以我不确定我能提供多少帮助。不过,这是我对替代数据流的一般想法:
首先,正如您所指出的,AD 流仅适用于 NTFS。如果您有机会需要将此元数据存储在 FAT 文件系统上,则需要某种后备机制。现代 PC 可能具有 NTFS 格式的内部硬盘驱动器,但您遇到的大多数 USB 闪存驱动器仍然是 FAT 格式。如果您的用户将数据文件存储在闪存驱动器上,请记住这一点。
除此之外,我想不出任何技术原因来避免广告流,但我仍然对使用它们持谨慎态度。人们往往会对那些向他们“隐藏”数据的应用程序感到紧张,无论其意图如何。考虑一下索尼 rootkit 的惨败等等。我并不是说你的应用程序有那么糟糕,但人们(尤其是不太懂技术的人)可能无法区分其中的区别。尽管如此,我仍然允许它们对您的应用程序有有效的用途。当然,卸载后留下广告流的问题仍然是非常现实的。您可能需要考虑为运行卸载程序的人员提供运行程序来搜索驱动器并清理任何剩余流的选项。
另外,请记住KISS 原则。使用 AD 流真的是有效解决应用程序元数据存储问题的最简单方法吗?如果是这样,也许 AD 流是一个好主意,但如果不是,我会认真考虑采取另一种方法。