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