5

一部のファイルには、[プロパティ] に [概要] タブがあります。このタブには、タイトル、作成者、コメントなどの情報が含まれています。C# でファイルのコメントを読み取る方法はありますか。jpg などの画像ファイルからコメントのみを読み取る必要があります。

4

2 に答える 2

6

コメントやその他の回答は、検索するのに適した場所です。ここにあなたを助けるための完全なコードがあります。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"]));

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

于 2012-05-02T07:26:17.817 に答える
1

シェル (shell32.dll) は、この問題を解決するのに役立ちます。最近、MSDN でこのすばらしい記事を見つけました ( http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/94430444-283b-4a0e-9ca5-7375c8420622 )。

ID3 タグの読み取りに関するcodeprojectもあります。

于 2012-05-02T06:20:32.930 に答える