http://sevenzipsharp.codeplex.com/
MainWindow.xaml
<Window x:Class="SevenZipTestWPF.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="SevenZipSharp WPF Demo" Height="157" Width="479" WindowStartupLocation="CenterScreen" >
<Grid>
<Image x:Name="image1" HorizontalAlignment="Left" Height="20" Margin="-13,25,0,0" VerticalAlignment="Top" Width="193" Source="progress-filled1.png" Stretch="None" RenderTransformOrigin="0.5,0.5">
<Image.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="0.75" ScaleY="0.73"/>
<SkewTransform/>
<RotateTransform/>
<TranslateTransform/>
</TransformGroup>
</Image.RenderTransform>
</Image>
<Grid>
<ProgressBar Height="15" HorizontalAlignment="Left" Margin="10,10,0,0"
Name="progressBar1" VerticalAlignment="Top" Width="355" />
<Button Content="Extract" HorizontalAlignment="Left" Margin="383,10,0,0" Name="b_Extract" Width="52" Click="b_Extract_Click" VerticalAlignment="Top" />
<Label x:Name="label1" Content="Label" HorizontalAlignment="Left" Margin="10,50,0,0" VerticalAlignment="Top" Width="451"/>
</Grid>
</Grid>
</Window>
MainWindow.xaml.cs
using System;
using System.Windows;
using SevenZip;
namespace SevenZipTestWPF
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
Check7zAndSevenZipSharpDll();
}
private string fileName = @"D:\Administrator\wwwroot\CPW\wmgjUpdate.7z";
private string directory = @"D:\Administrator\Desktop\完美世界国际版";
private string dll7z = AppDomain.CurrentDomain.BaseDirectory + "7z.dll";
private string dllSevenZipSharp = AppDomain.CurrentDomain.BaseDirectory + "SevenZipSharp.dll";
private int MaxValue = 0;
private int CurrentValue = 0;
private void b_Extract_Click(object sender, RoutedEventArgs e)
{
if (System.IO.File.Exists(fileName) && System.IO.Directory.Exists(directory))
{
SevenZipExtractor.SetLibraryPath(dll7z);
label1.Content = "开始更新客户端文件";
var extractor = new SevenZipExtractor(fileName);
progressBar1.Maximum = extractor.ArchiveFileData.Count;
MaxValue = extractor.ArchiveFileData.Count;
extractor.FileExtractionStarted += new EventHandler<FileInfoEventArgs>(extr_FileExtractionStarted);
extractor.BeginExtractArchive(directory);
}
}
void extr_FileExtractionStarted(object sender, FileInfoEventArgs e)
{
label1.Content = String.Format("更新文件 {0}", e.FileInfo.FileName);
progressBar1.Value += 1;
CurrentValue += 1;
ImageProgressBar(CurrentValue, MaxValue, 193, image1);
if (progressBar1.Maximum == progressBar1.Value)
label1.Content = "游戏更新完成";
}
private void Check7zAndSevenZipSharpDll()
{
bool b1 = System.IO.File.Exists(dll7z);
bool b2 = System.IO.File.Exists(dllSevenZipSharp);
if (!b1)
{
MessageBox.Show("7z.dll 不存在!", "错误", MessageBoxButton.OK, MessageBoxImage.Error);
Close();
}
if (!b2)
{
MessageBox.Show("SevenZipSharp.dll 不存在!", "错误", MessageBoxButton.OK, MessageBoxImage.Error);
Close();
}
}
/// <summary>
/// 图片进度条
/// </summary>
/// <param name="current"></param>
/// <param name="max"></param>
/// <param name="imageWidth">图片的实际宽度</param>
/// <param name="image1"></param>
private static void ImageProgressBar(double current, double max, double imageWidth, System.Windows.Controls.Image image1)
{
if (max != 0)
image1.Width = System.Math.Round((current / max) * imageWidth);
}
}
}
- WPF 下载网络文件 带进度条
附件:http://files.cnblogs.com/xe2011/WpfApplication3_downloadFile.rar 使用 private void Button ...
- Asp.Net上传大文件带进度条swfupload
Asp.Net基于swfupload上传大文件带进度条百分比显示,漂亮大气上档次,大文件无压力,先看效果 一.上传效果图 1.上传前界面:图片不喜欢可以自己换 2.上传中界面:百分比显示 3.上传后返 ...
- Extjs 使用fileupload插件上传文件 带进度条显示
一.首先我们看看官方给出的插件的解释: 一个文件上传表单项具有自定义的样式,并且可以控制按钮的文本和 像文本表单的空文本类似的其他特性. 它使用一个隐藏的文件输入元素,并在用户选择文件后 在form提 ...
- ASP.NET Jquery+ajax上传文件(带进度条)
效果图 支持ie6+,chrome,ie6中文文件名会显示乱码. 上传时候会显示进度条. 需要jquery.uploadify.js插件,稍后会给出下载 前台代码 <%@ Page Langua ...
- Springmvc+uploadify实现文件带进度条批量上传
网上看了很多关于文件上传的帖子,众口不一,感觉有点乱,最近正好公司的项目里用到JQuery的uploadify控件做文件上传,所以整理下头绪,搞篇文档出来,供亲们分享. Uploadify控件的主要优 ...
- webclient下载文件 带进度条
private void button1_Click(object sender, EventArgs e) { doDownload(textBox1.Text.Trim()); } private ...
- asp.net mvc 实现上传文件带进度条
本文乃是博主早期写的,此种思路虽然实现了,但固然不是最好的,仅做参考学习. 可以用js onprogress .fileinput .webuploader.jq ajaxsubmit等实现 思路:a ...
- FormData上传文件 带进度条
* jQuery ajax FormData 上传文件 template $.ajax({ url: url, type: 'POST', data: new FormData(form), dat ...
- UrlDownloadFile, 线程下载文件, 带进度条
unit FileDownLoadThread; interface uses Classes, SysUtils, Windows, ActiveX, UrlMon; const S_ABORT = ...
随机推荐
- nginx 配置的server_name参数(转)
转自:http://www.sklinux.com/373 nginx中的server_name指令主要用于配置基于名称虚拟主机. 一 匹配顺序,server_name指令在接到请求后的匹配顺序如下: ...
- 8. Unity异常警告错误处理方法
一. The AnimationClip 'cube1_anim' used by the Animation component 'Cube1' must be marked as Legacy. ...
- VMware与宿敌Amazon一笑泯恩仇:重新定义混合云?(私有云节节败退)
摘要: 私有云巨头VMware看来是真的要输给一个“书贩子” 了!这意味着私有云将败给公有云? [阅读原文] 三年前,虚拟化巨头VMware曾对亚马逊Amazon云服务AWS竖过中指:我们怎么可能打不 ...
- poj3373Changing Digits(dp)
链接 dfs倒着搜 返回的路径不能满足相同的数最多 借鉴了下别人的代码.. 先dp出来 再倒着标记一下 然后正回来一定可以满足了 dp保存的是最小的不相同数 #include <iostream ...
- Webform——注册验证
服务器控件和客户端控件的交替使用,主要还是获取到各个控件的值,直接用C#或Js判断是否符合条件就可以. 这里是以服务器控件为例子,至于客户端控件则需要写JS代码 .UserBF public clas ...
- web项目测试方法总结
在Web工程过程中,基于Web系统的测试.确认和验收是一项重要而富有挑战性的工作.基于Web的系统测试与传统的软件测试不同,它不但需要检查和验证是否按照设计的要求运行,而且还要测试系统在不同用户的浏览 ...
- Linux Kernel‘ieee80211_radiotap_iterator_init()’函数拒绝服务漏洞
漏洞名称: Linux Kernel‘ieee80211_radiotap_iterator_init()’函数拒绝服务漏洞 CNNVD编号: CNNVD-201312-041 发布时间: 2013- ...
- 微软公有云事件中心(Azure Event Hubs)在开放物联网大会(OIOT)啼声初试
发布于 2014-12-29 作者 刘 天栋 2014年12月18日,InfoQ在京召开开放物联网大会(Open IOT Conference),微软开放技术(中国)资深项目经理陈岭在大会中针对 ...
- FastCGI技术
1 FastCGI介绍 FastCGI:快速通用网关接口(Fast Common Gateway Interface/FastCGI)是一种让交互程序与Web服务器通信的协议. ...
- 【原】spark-submit提交应用程序的内部流程
我们经常通过spark-submit来提交spark应用程序,那么让我们一起看一下这里面到底发生了什么吧. 知识点: 1.CLI命令行界面启动Spark应用程序 Unix有两种方式:1)spark-s ...