7

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)

この属性を更新してファイルに書き込み/保存する方法を誰か教えてもらえますか?

4

1 に答える 1

2

これらはファイル形式によって異なります。プラグインによって情報を取得する方法が Windows エクスプローラーに通知されるため、Windows エクスプローラーはこれらの拡張ファイル プロパティのみを表示できます。すべてのファイル形式がこれをサポートしているわけではありません。たとえば、単純な txt ファイルにはタイトルがありません。拡張ファイル プロパティを設定するための単一の API がないことを私は知っているので、サポートするファイル形式ごとにライブラリを見つける必要があります。たとえば、写真、ビデオ、オーディオの場合はTagLib-Sharp 、PDF の場合はiTextSharpです。ただし、一部の形式はサポートしていないため、すべての形式にタイトルを設定することはできません。

ファイルにタグを付ける別の方法を探すほうがよいでしょう。NTFS 代替データ ストリームが役立つかもしれません。

于 2013-05-20T10:27:54.890 に答える