dsofile c#API / NTFS自定义文件属性

时间:2009-08-05 19:07:41

标签: file metadata ntfs

我正在寻找一种将元数据添加到文件的好方法。 dsofile.dll适用于NTFS。当一个人在FAT32共享上删除一个副本时,元数据就会丢失(我猜它会使用NTFS隐藏的流)。 Microsoft Word文档包含不丢失的元数据,它们是如何做到的?与FAT类似,通过使用dsofile创建的所有元数据的电子邮件条带发送文件(以及使用Windows资源管理器手动创建的元数据)。单独的元数据文件不是一个选项。它必须与标准Windows技术兼容。如果我向某人发送一个包含Outlook的文件并将其发回,则不应丢失元数据。

(所需的元数据实际上只是一个ID)

3 个答案:

答案 0 :(得分:2)

问题是所有文件系统都提供文件的单流视图作为最大公分母。通过这个公开文件“内容”的界面,您可以读取或存储属性,并通过天真系统(或用户)实用程序使用“内容”进行传输。例如,Windows中的CopyFile会小心地丢失备用数据流,并且没有“影子文件”的概念。

问题是“内容”的格式是否允许任意添加属性。

某些格式允许任意内容(例如,MSFT的docfile,也称为.doc / .xls / etc)。有些允许有限的内容(.mp3,.jpg,.exe)。

有些完全是SOL(.txt,.bmp)。

答案 1 :(得分:1)

任何解决方案都将取决于格式。 MS OFfice文件是(所有)复合文件,那里有属性的地方。在某些格式(例如PE文件)中,如果您知道稍后如何阅读它们,则只需将数据附加到文件末尾即可。在ZIP文件中,您可以在目录中找到一个位置,或者只是将包含数据的帮助文件添加到存档中。其他格式无法忍受,您需要找到解决问题的方法。

实际上,文件名也可以是您的ID的好占位符。

如果您需要将文件存储在某处但不需要该文件可供外部应用程序读取,您可以将它们打包到ZIP存档或使用类似我们SolFS的内容 图书馆。

答案 2 :(得分:0)

标准属性而不是自定义DSOFile属性怎么样?即评论,作者等?他们被擦掉了吗?

不确定它的理想是否是我们已经解决的问题是我们有一个工具可以获取DSOfile属性并保存文本文件,然后通过电子邮件将其与文件一起发送,并在另一端user运行工具以从文本重新导入dsofile属性。