7

我正在尝试在 Powershell 中编写一个标记系统。我希望能够'tag'在文件中设置我的选择,例如通过使用该'title'字段,因为我不使用它。我要标记的文件是照片/视频和文本的混合体。

我发现读取/获取扩展文件属性非常容易,因为网络上有多个示例可用,但是我发现很难找到修改或编写扩展文件属性的示例;特别是在 Powershell 中。

我已经设法'titles'使用 taglib-sharp 写入文件,但这似乎有各种照片的问题,并且没有太多可用于故障排除的信息。此外,它只处理音频/视频/照片文件。

这是我必须阅读标题的代码(来自测试照片):

$path = 'C:\temp\photo.jpg'
$shell = New-Object -COMObject Shell.Application
$folder = Split-Path $path
$file = Split-Path $path -Leaf
$shellfolder = $shell.Namespace($folder)
$shellfile = $shellfolder.ParseName($file)
$shellfolder.GetDetailsOf($shellfile, 21)

谁能告诉我如何更新此属性然后将其写入/保存到文件中?

4

1 回答 1

2

这些取决于文件格式。Windows 资源管理器只能显示这些扩展文件属性,因为插件让它知道如何获取信息。并非所有文件格式都支持这一点。例如简单的 txt 文件没有标题。我知道没有单个 API 可以设置扩展文件属性,因此您需要为要支持的每种文件格式找到一个库。例如用于照片、视频和音频的TagLib-Sharp和用于 PDF 的iTextSharp 。但即便如此,您也无法为所有格式设置标题,因为有些格式不支持。

您最好寻找另一种方法来标记您的文件。也许NTFS 备用数据流可能会对您有所帮助。

于 2013-05-20T10:27:54.890 回答