您的位置:首页 > 编程语言 > C#

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

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: