项目中我们有时会显示当前版本.
类文件:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace DocumentSearch.Helper
{
class FileInfoHelper
{
/// <summary>
/// get file path,include file name
/// </summary>
/// <returns>DriveName:\path\****.EXE</returns>
public string GetFilePath()
{
return this.GetType().Assembly.Location;//当前执行文件 path\name
}
public List<object> GetFileInfo(string FileFullPathName)
{
List<object> list = new List<object>();
FileInfo fileinfo = null;
try
{
fileinfo = new System.IO.FileInfo(FileFullPathName);
if (fileinfo != null && fileinfo .Exists)
{
System.Diagnostics.FileVersionInfo info = System.Diagnostics.FileVersionInfo.GetVersionInfo(FileFullPathName);
list.Add(new { FileName=info.FileName, FileVer = info.FileVersion, FileCreateDate = fileinfo.CreationTime.ToString("yyyy-MM-dd") });
//list.Add(new { FileVer = info.FileVersion });
//list.Add(new { ProductVer = info.ProductVersion });
Console.WriteLine("DisplayVer:" + info.ProductMajorPart + '.' + info.ProductMinorPart + '.' + info.ProductBuildPart + '.' + info.ProductPrivatePart);
//list.Add(new { FileDesc = info.FileDescription });
//list.Add(new { FileName = System.Math.Ceiling(fileinfo.Length / 1024.0) + " KB" });
}
return list;
}
catch (Exception ex)
{
throw ex;
}
}
}
}
调用:
private void frmMain_Load(object sender,EventArgs e)
{
//get file version date
List<object> listFileInfo = fileInfoHlp.GetFileInfo(fileInfoHlp.GetFilePath());
if (listFileInfo.Count > 0)
{
**dynamic fileinfo = listFileInfo[0]; //使用dynamic类
this.Text = $"Main Form 【VerDate:{fileinfo.FileCreateDate}】";**
}
}