0

Windowsエクスプローラーでファイルを右クリックし、[プロパティ]を選択すると、大量の情報を含むダイアログがポップアップ表示されます。C#を使用してこの情報にアクセスするにはどうすればよいですか?

具体的には、[詳細]タブで情報を探しています。私は主に画像を扱っているので、「撮影日」が重要です。他のファイルも使用するので、ファイルに関連付けられているメタデータを取得する方法があると便利です。

Shell32.dllを使用してこの情報を取得することに言及している場所を見たことがありますが、このライブラリを参照しようとするとエラーが発生します。これを行う別の方法はありますか?おそらくP / Invokeを使用しますか?

4

3 に答える 3

1

Fileこの目的でクラスメソッドを使用できます。

File.GetCreationTime(filename)
File.GetLastWriteTime(filename)
File.GetLastAccessTime(filename)
//and many more in the intellisense
于 2013-02-27T20:47:50.790 に答える
1

FileSystemInfoクラスを試しましたか?

http://msdn.microsoft.com/en-us/library/system.io.filesysteminfo.aspx

于 2013-02-27T20:45:37.290 に答える
1

少しいじった後、画像メタデータを取得する方法の非常に限定された例を次に示します。

var image = System.Drawing.Image.FromFile(@"C:\your\image\here");

        foreach (var a in image.PropertyItems)
        {
            dynamic value;

            switch (a.Type)
                {
                case 2:
                    value = Encoding.ASCII.GetString(a.Value);
                    break;
                case 3:
                    value = BitConverter.ToInt16(a.Value, 0);
                    break;
                case 4:
                    value = BitConverter.ToInt32(a.Value, 0);
                    break;
                default:
                    value = "NaN";
                    break;
                }

            Console.WriteLine("Type: {0} \r\n Value: {1}", a.Type, value);
        }

Microsoftのサイトでさらに情報を見つけたり、画像メタデータの仕様を検索して、完全に自分で作成することができます。

すでにこれを処理しているサードパーティのライブラリを使用するオプションは常にありますが、私自身は画像の分野ではあまり仕事をしていません。

于 2013-02-27T21:55:58.190 に答える