C#获取视频文件的播放时间
2015-07-02 14:02
701 查看
class Program { static void Main(string[] args) { string dirRoot = @"D:\MVC 4 OA项目\MVC4-1\2013-05-29-MVC\视频"; //string dirRoot = @"D:\MVC 4 OA项目\MVC4-2\视频"; DirectoryInfo diRoot = new DirectoryInfo(dirRoot); TimeSpan totalTS = new TimeSpan(); foreach (var fi in diRoot.GetFiles()) { string datehhmmss = GetMediaTimeLen(fi.FullName); string[] arr = datehhmmss.Split(':'); TimeSpan s1 = new TimeSpan(Convert.ToInt32(arr[0]), Convert.ToInt32(arr[1]), Convert.ToInt32(arr[2])); totalTS += s1; Console.WriteLine(datehhmmss); } Console.WriteLine(); Console.WriteLine("Total:" + totalTS.ToString()); Console.Read(); } public static string GetMediaTimeLen(string path) { try { Shell32.Shell shell = new Shell32.ShellClass(); //文件路径 Shell32.Folder folder = shell.NameSpace(path.Substring(0, path.LastIndexOf("\\"))); //文件名称 Shell32.FolderItem folderitem = folder.ParseName(path.Substring(path.LastIndexOf("\\") + 1)); string showMsg = ""; //在win2003上应使用folder.getdetailsof(folderitem, 21) , //而在vista上应使用folder.getdetailsof(folderitem, 27) ,主要是因为不同系统下文件属性索引顺序不同造成。 showMsg = folder.GetDetailsOf(folderitem, 27); return showMsg; } catch (Exception ex) { return null; } } }
相关文章推荐
- C# 发送电子邮件(含附件)用到的类 system.web.mail
- 在C#主线程和子线程将数据传递给对方如何实现
- C# 概念记忆
- C# 关闭显示器(显示)
- C# Message.msg
- C# Generic(转载)
- [c#][福利]BTTool种子文件修改工具
- C# 你不能调用的问题剪贴板线程
- C#内存释放
- C#软件winform程序安装包制作及卸载程序制作
- c#中跨线程调用windows窗体控件 .我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题。然而我们并不能用传统方法来做这个问题,下面我将详细的介绍。
- c#中如何跨线程调用windows窗体控件?
- C#操作Word (2)-- 打开&关闭Word文档
- C#课程设计---猜猜看
- C#RAS加密算法
- c#语言
- C#中实现 子窗体控制调用父窗体成员和控件
- C#可以直接调用的Win32API
- C#如何在线程里调用带参数的方法
- C# 课堂总结2-数据类型及转换方式