C#获取视频文件的播放时间

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#获取视频文件的播放时间)