RaUI/Source/MyDb/FileFuns/FileInfo.cs
鑫Intel 83d0e095d5 ### 2021-09-12更新
------
#### ryControls    V3.0.2109.1201
- *.[改进]ObjectListView控件的AspectToStringConverter函数新增行数据参数。
- *.[改进]ObjectListView控件的行高默认到25像素。
- *.[改进]ObjectListView控件默认行选择而不是列选择。
- *.[改进]ObjectListView控件新增大量中文注释。
- *.[改进]ObjectListView控件的ShowGroups属性默认值为false。
2021-09-12 14:54:38 +08:00

116 lines
4.4 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Windows.Forms;
namespace ryCommon
{
/// <summary>
/// 文件信息
/// </summary>
public class RySoft
{
/// <summary>
/// 获取版本号
/// </summary>
public static string VersionStr
{
get
{
//Version ver = Assembly.LoadFile(Application.ExecutablePath).GetName().Version;
//Version ver = Assembly.GetEntryAssembly().GetName().Version;
//return ver.Major.ToString() + "." + ver.Minor.ToString() + "." + ver.Build.ToString() + "." + ver.;
return GetVersionStr(Application.ExecutablePath);
}
}
/// <summary>
/// 获取版本号
/// </summary>
/// <param name="exe_path"></param>
/// <returns></returns>
public static string GetVersionStr(string exe_path)
{
try
{
System.Diagnostics.FileVersionInfo info = System.Diagnostics.FileVersionInfo.GetVersionInfo(exe_path);
return info.ProductVersion;
}
catch { return ""; }
//Version ver = Assembly.LoadFile(exe_path).GetName().Version;
//return ver.Major.ToString() + "." + ver.Minor.ToString() + "." + ver.Build.ToString() + "." + ver.Revision.ToString();
}
/// <summary>
/// 根据版本字符串输出double类型的版本号
/// </summary>
/// <param name="ver"></param>
/// <param name="_softVer"></param>
/// <param name="_reVer"></param>
public static void GetVerByVerStr(string ver, out double _softVer, out double _reVer)
{
_softVer = 0;
_reVer = 0;
string[] ver_item = ver.Split('.');
switch (ver_item.Length)
{
case 1:
_softVer = ver_item[0].ToDouble(0);
break;
case 2:
_softVer = ver.ToDouble(0);
break;
case 3:
_softVer = (ver_item[0] + "." + ver_item[1]).ToDouble(0);
_reVer = ver_item[2].ToDouble(0);
break;
case 4:
_softVer = (ver_item[0] + "." + ver_item[1]).ToDouble(0);
_reVer = (ver_item[2] + "." + ver_item[3]).ToDouble(0);
break;
}
}
/// <summary>
/// 比较两个版本号大小
/// </summary>
/// <param name="oldVer"></param>
/// <param name="NewVer"></param>
/// <returns>oldVer小于newVer,返回1,大于则返回-1,相等返回0</returns>
public static int CompareVer(string oldVer,string NewVer)
{
GetVerByVerStr(oldVer, out double _old_softVer, out double _old_reVer);
GetVerByVerStr(NewVer, out double _new_softVer, out double _new_reVer);
return CompareVer(_old_softVer, _old_reVer, _new_softVer, _new_reVer);
}
/// <summary>
/// 比较版本号
/// </summary>
/// <param name="_old_softVer"></param>
/// <param name="_old_reVer"></param>
/// <param name="_new_softVer"></param>
/// <param name="_new_reVer"></param>
/// <returns>old小于new,返回1,大于则返回-1,相等返回0</returns>
public static int CompareVer(double _old_softVer,double _old_reVer, double _new_softVer, double _new_reVer)
{
if (_old_softVer < _new_softVer) { return 1; }
if (_old_softVer == _new_softVer)
{
if (_old_reVer < _new_reVer) { return 1; }
else if (_old_reVer == _new_reVer) { return 0; }
else { return -1; }
}
else { return -1; }
}
/// <summary>
/// 判断是否是管理员方式运行
/// </summary>
/// <returns></returns>
public static bool IsAdministrator()
{
System.Security.Principal.WindowsIdentity identity = System.Security.Principal.WindowsIdentity.GetCurrent();
System.Security.Principal.WindowsPrincipal principal = new System.Security.Principal.WindowsPrincipal(identity);
return principal.IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator);
}
}
}