//************************************************************************ // author: yuzhengyang // date: 2017.10.12 - 2017.10.12 // desc: 客户端启动器 // Copyright (c) yuzhengyang. All rights reserved. //************************************************************************ using Azylee.Core.DataUtils.CollectionUtils; using Azylee.Core.DataUtils.StringUtils; using Azylee.Core.IOUtils.DirUtils; using Azylee.Core.IOUtils.FileUtils; using Azylee.Core.ProcessUtils; using System; using System.Collections.Generic; using System.IO; namespace Azylee.Core.AppUtils { public static class AppLaunchTool { /// /// 启动最新版本程序 /// /// 路径:程序版本文件夹路径 /// 可执行文件名 /// public static bool StartNewVersion(string route, string startfilename) { //判断路径是文件还是文件夹,并统一处理为文件夹 string appPath = route; if (FileTool.IsFile(route)) appPath = DirTool.GetFilePath(route); if (Directory.Exists(appPath)) { //获取运行目录下所有文件 List paths = DirTool.GetPath(appPath); if (ListTool.HasElements(paths)) { //解析属于版本号的文件 Version version = null; string startfile = null; foreach (var path in paths) { //只解析文件名带三个点的文件夹 string filename = Path.GetFileName(path); if (StringTool.SubStringCount(filename, ".") == 3) { try { Version tempVersion = new Version(filename); string tempFile = DirTool.Combine(path, startfilename); if ((version == null || tempVersion > version) && File.Exists(tempFile)) { version = tempVersion; startfile = tempFile; } } catch { } } } //准备启动 if (startfile != null) { return ProcessTool.Start(startfile); } } } return false; } /// /// 查询是否有最新版本程序可以执行 /// /// 路径:程序版本文件夹路径 /// 可执行文件名 /// public static bool HasNewVersion(string route, string startfilename) { //判断路径是文件还是文件夹,并统一处理为文件夹 string appPath = route; if (FileTool.IsFile(route)) appPath = DirTool.GetFilePath(route); if (Directory.Exists(appPath)) { //获取运行目录下所有文件 List paths = DirTool.GetPath(appPath); if (ListTool.HasElements(paths)) { //解析属于版本号的文件 foreach (var path in paths) { //只解析文件名带三个点的文件夹 string filename = Path.GetFileName(path); if (StringTool.SubStringCount(filename, ".") == 3) { try { //有版本命名的文件,且文件中有exe程序 Version tempVersion = new Version(filename); string tempFile = DirTool.Combine(path, startfilename); if (File.Exists(tempFile)) return true; } catch { } } } } } return false; } /// /// 获取最新版本号 /// /// 路径:程序版本文件夹路径 /// 可执行文件名 /// public static Version GetNewVersion(string route, string startfilename) { //解析属于版本号的文件 Version version = null; string startfile = null; //判断路径是文件还是文件夹,并统一处理为文件夹 string appPath = route; if (FileTool.IsFile(route)) appPath = DirTool.GetFilePath(route); if (Directory.Exists(appPath)) { //获取运行目录下所有文件 List paths = DirTool.GetPath(appPath); if (ListTool.HasElements(paths)) { foreach (var path in paths) { //只解析文件名带三个点的文件夹 string filename = Path.GetFileName(path); if (StringTool.SubStringCount(filename, ".") == 3) { try { Version tempVersion = new Version(filename); string tempFile = DirTool.Combine(path, startfilename); if ((version == null || tempVersion > version) && File.Exists(tempFile)) { version = tempVersion; startfile = tempFile; } } catch { } } } } } return version; } } }