我正在尝试在Powershell中编写标记系统。我希望能够在文件中设置'tag'
我的选择,例如使用'title'
字段,因为我不使用它。我想要标记的文件是照片/视频和文字的混合。
我发现读取/获取扩展文件属性非常容易,因为网上有多个可用示例,但我发现找到修改或编写扩展文件属性的示例非常困难;特别是在Powershell。
我已设法使用taglib-sharp将'titles'
写入文件,但这似乎与各种照片有问题,并且没有太多可用于故障排除的信息。此外,它只处理音频/视频/照片文件。
这是我必须阅读标题的代码(来自测试照片):
$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)
有谁能告诉我如何更新此属性然后将其写入/保存到文件中?
答案 0 :(得分:2)
这取决于文件格式。 Windows资源管理器只能显示这些扩展文件属性,因为插件让它知道如何获取信息。并非所有文件格式都支持此功能例如,简单的txt文件没有标题。我知道没有单一的API来设置扩展文件属性,因此您需要找到您想要支持的a library for each file format。例如TagLib-Sharp用于照片,视频和音频,iTextSharp用于PDF。但即便如此,你也无法为所有格式设置标题,因为有些人不支持它。
您最好找另一种标记文件的方法。也许NTFS Alternate Data Streams可能会帮助你。