Exemple #1
0
        /// <summary>
        /// 获取最新版本号
        /// </summary>
        /// <param name="route">路径:程序版本文件夹路径</param>
        /// <param name="startfilename">可执行文件名</param>
        /// <returns></returns>
        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 <string> 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);
        }
Exemple #2
0
        /// <summary>
        /// 获取目录的父目录
        /// </summary>
        /// <param name="path"></param>
        /// <returns></returns>
        public static string Parent(string path)
        {
            string p = path;

            if (!string.IsNullOrWhiteSpace(p))
            {
                while (p.EndsWith("\\"))
                {
                    p = p.Substring(0, p.Length - 1);
                }
                if (StringTool.SubStringCount(p, "\\") >= 1)
                {
                    try
                    {
                        return(Directory.GetParent(p).ToString());
                    }
                    catch (Exception e) { }
                }
            }
            return(p);
        }
Exemple #3
0
        /// <summary>
        /// 查询是否有最新版本程序可以执行
        /// </summary>
        /// <param name="route">路径:程序版本文件夹路径</param>
        /// <param name="startfilename">可执行文件名</param>
        /// <returns></returns>
        public static bool HasNewVersion(string route, string startfilename)
        {
            //判断路径是文件还是文件夹,并统一处理为文件夹
            string appPath = route;

            if (FileTool.IsFile(route))
            {
                appPath = DirTool.GetFilePath(route);
            }

            if (Directory.Exists(appPath))
            {
                //获取运行目录下所有文件
                List <string> 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);
        }
Exemple #4
0
 /// <summary>
 /// 启动最新版本程序
 /// </summary>
 /// <param name="path"></param>
 /// <param name="exe"></param>
 /// <returns></returns>
 public static bool Run(string appPath, string startfilename)
 {
     if (Directory.Exists(appPath))
     {
         //获取运行目录下所有文件
         List <string> 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);
 }