Ejemplo n.º 1
0
        private void InstallFile(string localFileName, VersionFileInfo fileInfo, string tempFold)
        {
            string path = this.mainProcessInfo.UpdateApplicationStartupFolder;
            string newFileName;

            if (fileInfo.RelativePath != null)
            {
                newFileName = LocalFilesOperation.PathCombine(path, fileInfo.RelativePath);
            }
            else
            {
                newFileName = LocalFilesOperation.PathCombine(path, localFileName);
            }

            if (File.Exists(newFileName))
            {
                BackUpFile(newFileName);
                File.Copy(newFileName, Path.Combine(backupFold, localFileName), true);
            }
            localFileName = Path.Combine(tempFold, localFileName);
            switch (fileInfo.FileOperateType)
            {
            case OperateType.Add:
                CreateFold(newFileName);
                File.Copy(localFileName, newFileName, true);
                break;

            case OperateType.Update:
                CreateFold(newFileName);
                File.Copy(localFileName, newFileName, true);
                break;

            case OperateType.Del:
                if (File.Exists(newFileName))
                {
                    File.Delete(newFileName);
                }
                break;

            case OperateType.Run:
                File.Copy(localFileName, newFileName, true);
                string dir = path;
                RunFile(dir, fileInfo.FileName);
                break;
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 将要更新的文件保存在临时文件夹中
        /// </summary>
        /// <param name="tempFolder"></param>
        /// <param name="fileInfo"></param>
        public bool SaveUpdateFile(string tempFolder, VersionFileInfo fileInfo)
        {
            string tempFileName = LocalFilesOperation.PathCombine(tempFolder, fileInfo.FileName);

            HttpHelper.Download(fileInfo.DownloadUrl, tempFileName);
            //压缩包
            if (fileInfo.FileName.EndsWith(".zip"))
            {
                string err;
                if (!ZipFileOperation.UnZipFile(tempFileName, tempFolder, out err))
                {
                    return(false);
                }

                //string versionFilePath = LocalFilesOperation.PathCombine(tempFolder, "VersionInfo.txt");
                //if (!File.Exists(versionFilePath))
                //    return false;
                //using (FileStream fs = new FileStream(versionFilePath, FileMode.Open, FileAccess.Read))
                //{
                //    using (StreamReader sr = new StreamReader(fs))
                //    {
                //        VersionInfos.TotalFileSize = long.Parse(sr.ReadLine());
                //        VersionInfos.UpdateFileList.Clear();
                //        List<string> infoList = new List<string>();
                //        while (!sr.EndOfStream)
                //        {
                //            infoList.Add(sr.ReadLine());
                //        }
                //        foreach (string item in infoList)
                //        {
                //            string[] paramList = item.Split(new char[] { ',' });
                //            VersionInfos.UpdateFileList.Add(new VersionFileInfo() { FileName = paramList[0], RelativePath = paramList[1], FileOperateType = (OperateType)Enum.Parse(typeof(OperateType), paramList[2]), FileSize = long.Parse(paramList[3]) });
                //        }
                //    }
                //}
            }
            else if (fileInfo.FileName.EndsWith(".exe"))
            {
                fileInfo.FileOperateType = OperateType.Run;
            }
            return(true);
        }
Ejemplo n.º 3
0
        public bool SaveUpdateFile(string tempFolder, VersionFileInfo fileInfo)
        {
            string tempFileName = LocalFilesOperation.PathCombine(tempFolder, fileInfo.FileName);

            File.Copy(@"E:\" + fileInfo.FileName, tempFileName, true);
            string err;

            if (!ZipFileOperation.UnZipFile(tempFileName, tempFolder, out err))
            {
                return(false);
            }
            string versionFilePath = LocalFilesOperation.PathCombine(tempFolder, "VersionInfo.txt");

            if (!File.Exists(versionFilePath))
            {
                return(false);
            }
            using (FileStream fs = new FileStream(versionFilePath, FileMode.Open, FileAccess.Read))
            {
                using (StreamReader sr = new StreamReader(fs))
                {
                    VersionInfos.TotalFileSize = long.Parse(sr.ReadLine());
                    VersionInfos.UpdateFileList.Clear();
                    List <string> infoList = new List <string>();
                    while (!sr.EndOfStream)
                    {
                        infoList.Add(sr.ReadLine());
                    }
                    foreach (string item in infoList)
                    {
                        string[] paramList = item.Split(new char[] { ',' });
                        VersionInfos.UpdateFileList.Add(new VersionFileInfo()
                        {
                            FileName = paramList[0], RelativePath = paramList[1], FileOperateType = (OperateType)Enum.Parse(typeof(OperateType), paramList[2]), FileSize = long.Parse(paramList[3])
                        });
                    }
                }
            }
            return(false);
        }