如何读取文件属性/元数据?

时间:2014-04-21 12:05:01

标签: c#

我想读取系统文件属性,如下图所示,特别是标题版权属性。我怎么能这样做?

**Read yellow details **

2 个答案:

答案 0 :(得分:1)

通常您可以使用System.Diagnostics

FileVersionInfo info = FileVersionInfo.GetVersionInfo("path\to\file");

然后检查FileDescriptionLegalCopyright属性。但是对于图像情况不同,您需要显式提取位图元数据。考虑,

using (Stream fs = File.Open("path\to\file", FileMode.Open, FileAccess.ReadWrite))
{
    BitmapDecoder decoder = 
        BitmapDecoder.Create(
            fs, BitmapCreateOptions.None, BitmapCacheOption.Default);
    BitmapFrame frame = decoder.Frames[0]; // the first frame with the metadata
    BitmapMetadata metadata = frame.Metadata as BitmapMetadata;
    if (metadata != null)
    {
        // examine metadata.Title, metadata.Copyright
    }
    fs.Close();
}

您可以在MSDN上找到BitmapMetadata Class文档中列出的所有属性。

答案 1 :(得分:0)

您需要将图片加载到位图中,然后访问 PropertyItems

  Bitmap image = new Bitmap("YOUR IMAGE PATH HERE");
    PropertyItem[] propItems = image.PropertyItems;

以下内容将获得制造商......

System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
string manufacturer = encoding.GetString(propItems[1].Value);

您需要根据自己的具体细节进行类似的转化。

    foreach (PropertyItem item in propItems)
    {

        Console.WriteLine("ID : " + item.Id + " , VALUE : " +  encoding.GetString(item.Value));

    }