将新的元数据属性添加到文件中

我想为一些文件添加一些元数据属性。 就像doc文件的所有者,计算机,标题,主题等一样,我希望能够添加一些自定义属性。 怎么办?

如前所述,它取决于文件系统。 所以这只适用于NTFS。

一种方法是创建ADS流:请参阅编辑历史记录。

另一种方法是使用DSOFile-Library,它仅适用于Office文件。 但它适用于每个文件。

首先在这里下载库(x64 + x86): DOWNLOAD

重要说明: 由于DSO OLE是32位DLL,因此只有在将编译目标CPU设置为x86时才能工作。 否则会抛出exception。 还有一个64位版本可用: 如何在c#中读取自定义文件属性

然后在项目中创建对COM DLL的引用(右键单击解决方案 – >添加引用 – > COM选项卡 – >添加“DSO OLE文档属性读取器v2.1”)并使用命名空间:

using DSOFile; 

之后,您可以创建自己的属性:

首先打开文件:

 OleDocumentProperties myFile = new DSOFile.OleDocumentProperties(); myFile.Open(@"MYPATHHERE", false, DSOFile.dsoFileOpenOptions.dsoOptionDefault); 

为yourValue创建一个对象: object yourValue = "Your Value";

然后检查是否已经存在您要创建的属性:

 foreach (DSOFile.CustomProperty property in myFile.CustomProperties) { if (property.Name == "Your Property Name"){ //Property exists //End the task here (return;) oder edit the property property.set_Value(yourValue); } } 

然后在检查现有属性后,您可以添加属性:

 myFile.CustomProperties.Add("Your Property Name", ref yourValue); 

要完成任务,请保存并关闭文件:

 myFile.Save(); myFile.Close(true); 

您可以在我的主页上下载示例项目 。

现在到了在资源管理器中显示属性的部分。

您必须为此创建一个shell扩展。 有关更多信息,请访问Codeproject页面 。

我创建了一个, 你可以在这里下载。 但是你必须再次签名(在所提到的页面上寻找“操作方法”)。

右键单击.css / .js / .txt文件时,它看起来像这样: 使用Sharpshell进行Shell扩展
或者创建自己的属性选项卡:
CustomPropertiesTab
您可以在此处下载示例: 下载

有关Dsofile.dll和其他源的详细信息,请参阅Microsoft Dsofile.dll