基于C/S模式的程序更新-解压

主要是利用开源dll----SharpCompress.dll

 1  using (Stream stream = File.OpenRead(exePath + @"\Update.RAR"))
 2             {
 3                 var reader = ReaderFactory.Open(stream);
 4                 while (reader.MoveToNextEntry())
 5                 {
 6                     if (!reader.Entry.IsDirectory)
 7                     {
 8                         //Console.WriteLine(reader.Entry.FilePath);
 9                         reader.WriteEntryToDirectory(exePath, ExtractOptions.ExtractFullPath | ExtractOptions.Overwrite);
10                     }
11                 }
12             }
时间: 2024-11-06 16:58:05

基于C/S模式的程序更新-解压的相关文章

基于C/S模式的程序更新-下载

思路: ①检查是否需要更新(通过数据库获取最新版本号和本地版本号进行比对(本地版本号可存在txt文件中,需要进行一定程度上的加密和解密操作)) ②从指定目录下载最新版本的程序覆盖本地文件(下载的文件时压缩文件) ③将压缩文件进行程序内解压缩(有可能客户电脑未安装压缩软件,所以只能通过程序本身来进行解压) ④解压完成后调用主程序 实现: 下载:WebClient 1 if (webClient.IsBusy)//是否存在正在进行中的Web请求 2 { 3 webClient.CancelAsync

基于C/S模式的程序更新-启动

根据不同需求,启动更新过后的程序 ①关闭更新程序,启动主程序 1 System.Diagnostics.Process.Start(exePath + @"\GreenStarMES.exe"); 2 this.Close(); ②启动主程序,不关闭更新程序,当主程序关闭时,同步关闭更新程序 1 System.Diagnostics.Process.Start(exePath + @"\GreenStarMES.exe").WaitForExit(); 2 this

基于哈夫曼编码的压缩解压程序

这个程序是研一上学期的课程大作业.当时,跨专业的我只有一点 C 语言和数据结构基础,为此,我查阅了不少资料,再加上自己的思考和分析,实现后不断调试.测试和完善,耗时一周左右,在 2012/11/19 完成.虽然这是一个很小的程序,但却是我完成的第一个程序. 源码托管在 Github:点此打开链接 一.问题描述: 名称:基于哈夫曼编码的文件压缩解压 目的:利用哈夫曼编码压缩存储文件,节省空间 输入:任何格式的文件(压缩)或压缩文件(解压) 输出:压缩文件或解压后的原文件 功能:利用哈夫曼编码压缩解

Linux解压有思路,所以任行

接触Linux系统后,发现有些特殊的文件,有些看似和windows下的文件有些渊源,例如filename.zip,是否真是“大明湖畔夏雨荷”?研习了相关Linux指导资料后,犹如思路打开,可以在“任行”一回. 1.filename.tar 此类文件适用于tar命令,tar是Linux中常用的打包命令,常称为tar包. tar -c 压缩归档 tar -x 解压 tar -t 查看内容 tar -r 向压缩归档文件末尾追加文件 tar -u更新原压缩包中的文件 tar -v显示过程 tar -o将

Python解压.zip文件

1 ''' 解压一个.zip文件或一个目录下的所有.zip文件到指定目录. 2 3 运行方法: 4 格式: 5 python unzip.py "source_dir" "dest_dir" password 6 参数说明: 7 source_dir和dest_dir既可以绝对路径也可以为相对路径.用""将它们括起为了防止路径中出现空格. 8 source_dir和dest_dir的缺省值表示当前目录. 9 password缺省表示压缩文件未加密

Spring基于事件驱动模型的订阅发布模式代码实例详解

代码下载地址:http://www.zuidaima.com/share/1791499571923968.htm 原文:Spring基于事件驱动模型的订阅发布模式代码实例详解 事件驱动模型简介 事件驱动模型也就是我们常说的观察者,或者发布-订阅模型:理解它的几个关键点: 首先是一种对象间的一对多的关系:最简单的如交通信号灯,信号灯是目标(一方),行人注视着信号灯(多方): 当目标发送改变(发布),观察者(订阅者)就可以接收到改变: 观察者如何处理(如行人如何走,是快走/慢走/不走,目标不会管的

基于libUSB的USB设备固件更新程序(下载数据)(转)

源:基于libUSB的USB设备固件更新程序(下载数据) 本文紧接上一篇日志:基于libUSB-Win32的USB设备固件更新程序(前言),相关背景以及起因等,此处不再赘述,如感兴趣请移步. libUSB-Win32给出的example里面,有一个bulk.c文件,分析其关键代码,结合libusb官方文档,摘出其关键代码如下: int main(void) { usb_dev_handle *dev = NULL; /* the device handle */ usb_init(); /* i

基于Android下载并解压Zip文件,更新UI简单帮助类

类似于:http://blog.csdn.net/jarlen/article/details/44794031 下载文件: /** * 下载文件 * * @param down_url * @param output * @param tmpDir */ private void download(String down_url, File output, File tmpDir) { InputStream inputStream = null; OutputStream outputStr

递归解压压缩包_模块更新(需要下载对应的解压程序)

1 #!/usr/bin/python3 2 # -*-coding:utf-8-*- 3 import os 4 import shutil 5 import time 6 import sys 7 import subprocess 8 sys.setrecursionlimit(10000)#设置函数递归的最大深度,防止无限递归导致堆栈溢出和系统崩溃 9 10 class UnzipLogFile: 11 parentName = "D:\广东应急厅巡检日志" 12 def __