raf*_*ale 8 c# file-properties file-attributes
我有一个简单的WCF服务,允许客户/消费者上传图像,音频或视频文件.上传后,服务应该分析文件并以某种方式检索以下属性:
图像:宽度,高度,拍摄日期,使用的程序
音频:运行时,艺术家,专辑,流派,比特率,出版年份
视频:运行时,宽度,高度,帧/秒,视频比特率,音频比特率
显然,Windows可以很容易地获取和显示这些属性,但我如何在C#中实现呢?
追求这个主题.
我已经验证了它获取所有文件属性,包括扩展属性.
在您的项目中,转到"添加引用" - > 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)