使用以下C#程序代碼可以非常方便地獲取Windows系統中任意一個文件(尤其是可執行文件)的文件版本、文件大小、版權、產品名稱等信息。所獲取到的信息類似於在Windows操作系統中右鍵點擊該文件,然后點擊【屬性】-【詳細信息】所看到的文件信息(Windows操作系統該界面上的文字信息不可復制)。

詳細C#程序代碼如下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; class Program { static void Main(string[] args) { while (true) { Console.Write("請輸入指定的文件路徑(請拖拽文件到此處):"); string path = Console.ReadLine(); PrintFileVersionInfo(path); } } /// <summary> /// 打印指定文件的詳細信息 /// </summary> /// <param name="path">指定文件的路徑</param> static void PrintFileVersionInfo(string path) { System.IO.FileInfo fileInfo = null; try { fileInfo = new System.IO.FileInfo(path); } catch (Exception e) { Console.WriteLine(e.Message); // 其他處理異常的代碼 } // 如果文件存在 if (fileInfo != null && fileInfo.Exists) { System.Diagnostics.FileVersionInfo info = System.Diagnostics.FileVersionInfo.GetVersionInfo(path); Console.WriteLine("文件名稱=" + info.FileName); Console.WriteLine("產品名稱=" + info.ProductName); Console.WriteLine("公司名稱=" + info.CompanyName); Console.WriteLine("文件版本=" + info.FileVersion); Console.WriteLine("產品版本=" + info.ProductVersion); // 通常版本號顯示為「主版本號.次版本號.生成號.專用部件號」 Console.WriteLine("系統顯示文件版本:" + info.ProductMajorPart + '.' + info.ProductMinorPart + '.' + info.ProductBuildPart + '.' + info.ProductPrivatePart); Console.WriteLine("文件說明=" + info.FileDescription); Console.WriteLine("文件語言=" + info.Language); Console.WriteLine("原始文件名稱=" + info.OriginalFilename); Console.WriteLine("文件版權=" + info.LegalCopyright); Console.WriteLine("文件大小=" + System.Math.Ceiling(fileInfo.Length / 1024.0) + " KB"); } else { Console.WriteLine("指定的文件路徑不正確!"); } // 末尾空一行 Console.WriteLine(); } }
編譯並運行以上代碼程序,然后用鼠標把指定文件拖拽到該程序的DOS運行窗口中,即可獲取該文件的路徑,然后按回車鍵即可獲得對應的文件詳細信息。以上面的可執行文件為例,輸出結果如下:

使用上述C#程序代碼獲得的文件詳細信息
注意:如上圖所示,Windows操作系統中顯示的文件版本"2.0.0.835"並不是直接顯示FileVersionInfo.FileVersion的屬性值,而是顯示的"主版本號.次版本號.生成號.專用部件號",即上面代碼中的info.ProductMajorPart + '.' + info.ProductMinorPart + '.' + info.ProductBuildPart + '.' + info.ProductPrivatePart
