public 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));if (Environment.OSVersion.Version.Major >= 6) { return folder.GetDetailsOf(folderitem, 27); } else { return folder.GetDetailsOf(folderitem, 21); } } catch (Exception ex) { return null; }
這里的GetDetailsOf是針對MP4文件時長的方法,如果想獲取別的信息,需要循環的輸出看一下,以確定屬性的編號
運行過程中會出現異常,原因為從系統中獲得的Shell版本為1.0,版本太老,應該使用1.2版本。可以通過下面的網盤連接下載,直接使用此文件引用
https://pan.baidu.com/s/1vH5bqv7fwHZWSWmAGrvtrA 提取碼:zmyx
之后會有一個嵌入互操作類型的錯誤,在解決方案資源管理器的引用中,選中引用文件,右鍵屬性,把嵌入互操作類型選擇為false即可
