如何从Windows文件属性对话框的详细信息选项卡中获取信息?

本文关键字:选项 获取 信息 详细信息 Windows 文件属性 对话框 | 更新日期: 2023-09-27 18:01:39

如果你在Windows资源管理器中右键单击一个文件并选择属性,会弹出一个包含大量信息的对话框。我如何使用c#访问这些信息?

具体来说,我正在寻找Details选项卡上的信息。我主要处理的是图片,所以"拍摄日期"很重要。我还将处理其他文件,因此如果有一种方法可以获取与该文件关联的元数据就太好了。

我看到的地方提到使用Shell32.dll来获取此信息,但当我试图引用此库时,我会得到错误。有没有其他方法可以做到这一点,也许通过P/Invoke?

如何从Windows文件属性对话框的详细信息选项卡中获取信息?

在弄乱了一点之后,这里是一个非常有限的如何获取图像元数据的示例。

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);
        }

你可以在微软的网站上找到更多的信息,并在Image Metadata规范上搜索自己完整地编写一个。

总是可以选择使用第三方库来处理这个问题,但是我自己在图像领域没有做太多的工作。

您尝试过FileSystemInfo类吗?

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

您可以使用File类方法来实现此目的:

File.GetCreationTime(filename)
File.GetLastWriteTime(filename)
File.GetLastAccessTime(filename)
//and many more in the intellisense