如何设置扩展文件属性?
我需要为某些Word / PDF文档设置“公司”字段值。我说的是您在“文件属性”下看到的扩展文件属性(摘要/作者/标题等)。
我知道如何 获取 它们(通过使用shell32.dll
类库)。我以为我也可以使用相同的类库 设置
它们,但似乎编写扩展属性要困难一些,shell32.dll
并且不允许这样做。
我发现了有关的内容taglib-sharp
,该内容似乎可以设置扩展属性,但是我不太了解它是如何工作的。
回答:
解决方案2016
将以下NuGet软件包添加到您的项目中:
Microsoft.WindowsAPICodePack-Shell
由MicrosoftMicrosoft.WindowsAPICodePack-Core
由Microsoft
读写属性
using Microsoft.WindowsAPICodePack.Shell;using Microsoft.WindowsAPICodePack.Shell.PropertySystem;
string filePath = @"C:\temp\example.docx";
var file = ShellFile.FromFilePath(filePath);
// Read and Write:
string[] oldAuthors = file.Properties.System.Author.Value;
string oldTitle = file.Properties.System.Title.Value;
file.Properties.System.Author.Value = new string[] { "Author #1", "Author #2" };
file.Properties.System.Title.Value = "Example Title";
// Alternate way to Write:
ShellPropertyWriter propertyWriter = file.Properties.GetPropertyWriter();
propertyWriter.WriteProperty(SystemProperties.System.Author, new string[] { "Author" });
propertyWriter.Close();
该文件必须是有效的,由特定的分配软件创建。每种文件类型都有特定的扩展文件属性,但并非所有文件都是可写的。
如果右键单击桌面上的文件而无法编辑属性,则也将无法在代码中对其进行编辑。
例:
- 在桌面上创建txt文件,将其扩展名重命名为docx。您无法编辑其
Author
或Title
属性。 - 用Word打开它,编辑并保存。现在你可以。
因此,请确保使用一些 try
catch
进一步的主题: MSDN:实现属性处理程序
以上是 如何设置扩展文件属性? 的全部内容, 来源链接: utcz.com/qa/424076.html