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; } }
/// <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); }
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); }