我想读取系统文件属性,如下图所示,特别是标题和版权属性。我怎么能这样做?
答案 0 :(得分:1)
通常您可以使用System.Diagnostics
,
FileVersionInfo info = FileVersionInfo.GetVersionInfo("path\to\file");
然后检查FileDescription
和LegalCopyright
属性。但是对于图像情况不同,您需要显式提取位图元数据。考虑,
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));
}