2012-05-02 12 views
4

一部のファイルのプロパティには[概要]タブがあり、このタブにはタイトル、作成者、コメントなどの情報が含まれています。 C#でファイルのコメントを読む方法はありますか?私はjpgのような画像ファイルからコメントだけを読まなければなりません。ファイルのコメントを読む

+3

ここをクリック[http://stackoverflow.com/questions/220097/read-write-extended-file-properties-c](http://stackoverflow.com/questions/220097/read-write-extended-file) -properties-c) – thepoosh

答えて

4

コメントやその他の回答は検索するのに適しています。ここにあなたを助ける完全なコードがあります。最初にshell32.dllと名前空間Shell32を参照してください。私はLINQPadでこれをやったので、それは違うタッチです。

は、テストファイルやフォルダを選択:

var folder = "..."; 
var file = "..."; 

は、シェルのオブジェクトを取得します。

// For our LINQPad Users 
// var shellType = Type.GetTypeFromProgID("Shell.Application"); 
// dynamic app = Activator.CreateInstance(shellType); 

Shell32.Shell app = new Shell32.Shell(); 

は、フォルダやファイルオブジェクトを取得します。

var folderObj = app.NameSpace(folder); 
var filesObj = folderObj.Items(); 

が可能ヘッダを探します

var headers = new Dictionary<string, int>(); 
for(int i = 0; i < short.MaxValue; i++) 
{ 
    string header = folderObj.GetDetailsOf(null, i); 
    if (String.IsNullOrEmpty(header)) 
     break; 
    if (!headers.ContainsKey(header)) headers.Add(header, i); 
} 

あなたが好きなら、これらのファイルを印刷することができます。それはそのディレクトリで利用可能なすべてのヘッダーです。 「コメント」ヘッダーを例に挙げてみましょう:

var testFile = filesObj.Item(file); 
Console.WriteLine("{0} -> {1}", testFile.Name, folderObj.GetDetailsOf(testFile, headers["Comments"])); 

必要に応じて変更してください。