获取特定的文件属性

raf*_*ale 8 c# file-properties file-attributes

我有一个简单的WCF服务,允许客户/消费者上传图像,音频或视频文件.上传后,服务应该分析文件并以某种方式检索以下属性:

图像:宽度,高度,拍摄日期,使用的程序

音频:运行时,艺术家,专辑,流派,比特率,出版年份

视频:运行时,宽度,高度,帧/秒,视频比特率,音频比特率

显然,Windows可以很容易地获取和显示这些属性,但我如何在C#中实现呢?

Khe*_*pri 7

追求这个主题.

我已经验证了它获取所有文件属性,包括扩展属性.

在您的项目中,转到"添加引用" - > COM - >"Microsoft Shell控件和自动化"

添加它,并再次提供所述线程,一个C#方法来读取目录中文件的属性.(我还在研究是否可以在特定文件上执行此功能.如果不是,您可以始终传递有问题的文件名并验证只获取该文件的属性.)

public static void Main(string[] args)
{
    List<string> arrHeaders = new List<string>();

    Shell32.Shell shell = new Shell32.Shell();
    Shell32.Folder objFolder;

    objFolder = shell.NameSpace(@"C:\temp\testprop");

    for( int i = 0; i < short.MaxValue; i++ )
    {
        string header = objFolder.GetDetailsOf(null, i);
        if (String.IsNullOrEmpty(header))
            break;
        arrHeaders.Add(header);
    }

    foreach(Shell32.FolderItem2 item in objFolder.Items())
    {
        for (int i = 0; i < arrHeaders.Count; i++)
        {
            Console.WriteLine("{0}\t{1}: {2}", i, arrHeaders[i], objFolder.GetDetailsOf(item, i));
        }
    }
}
Run Code Online (Sandbox Code Playgroud)