技術文章 > C#:SEVENZIPSHARP使用7Z.DLL來進行壓縮與解壓縮

C#:SEVENZIPSHARP使用7Z.DLL來進行壓縮與解壓縮

2019-07-01 08:01

文檔管理軟件,文檔管理系統,知識管理系統,檔案管理系統的技術資料:
主要源程序:

[CODE]
csharp
/*
* Created by SharpDevelop.
* User: Administrator
* Date: 2012/10/29
* Time: 16:13
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;

using SevenZip;
using SevenZipSharp;

namespace SevenZipSharp
{
/// <summary>
/// Description of MainForm.
/// </summary>
public partial class MainForm : Form
{
SevenZip.SevenZipExtractor extractor = null;
SevenZipCompressor compressor = new SevenZipCompressor();

public MainForm()
{
//
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();

//
// TODO: Add constructor code after the InitializeComponent() call.
//
this.label1.Text = “Please choose a archive to extract at first.“;
this.label5.Text = “0“;
this.label2.Text = ““;
this.label3.Text = ““;
this.listBox1.Items.Clear();
this.listBox2.Items.Clear();
}

void ShowException(string msg){
MessageBox.Show(msg,“Exception!“,MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
}

void ShowInformation(string msg){
MessageBox.Show(msg,“Information!“,MessageBoxButtons.OK,MessageBoxIcon.Information);
}

void BtnBrowseCompressedFileClick(object sender, EventArgs e)
{
try{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = “ZIP File(*.zip)|*.zip|RAR File(*.rar)|*.rar“;
if(ofd.ShowDialog() == DialogResult.OK){
string archiveFullName = ofd.FileName;
extractor = new SevenZipExtractor(archiveFullName);
extractor.ExtractionFinished += delegate {
this.label1.Text = “Extraction Finished.“;
};
extractor.Extracting += delegate {
this.label1.Text = “Extracting, please wait...“;
};
extractor.FileExtractionStarted += delegate {
this.label1.Text = “Start extracting...“;
};

this.label5.Text = extractor.FilesCount.ToString();
this.label2.Text = extractor.PackedSize.ToString() + “ bytes“;
this.listBox1.Items.Clear();
foreach(string fileName in extractor.ArchiveFileNames){
this.listBox1.Items.Add(fileName);
}
}
}catch(Exception ex){
ShowException(ex.Message);
}
}

void BtnExtractClick(object sender, EventArgs e)
{
try{
FolderBrowserDialog fbd = new FolderBrowserDialog();
if(fbd.ShowDialog() == DialogResult.OK){
extractor.ExtractArchive(fbd.SelectedPath);
}
extractor.Dispose();
extractor = null;
}catch(Exception ex){
ShowException(ex.Message);
}
}

void MainFormFormClosing(object sender, FormClosingEventArgs e)
{
if(extractor != null)
extractor.Dispose();
}

void BtnAddFileClick(object sender, EventArgs e)
{
try{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter= “All Files(*.*)|*.*“;
if(ofd.ShowDialog() == DialogResult.OK){
this.listBox2.Items.Add(ofd.FileName);
}
}catch(Exception ex){
ShowException(ex.Message);
}
}

void BtnRemoveFileClick(object sender, EventArgs e)
{
try{
if(this.listBox2.SelectedItem != null){
int index = this.listBox2.SelectedIndex;
this.listBox2.Items.RemoveAt(index);
}
}catch(Exception ex){
ShowException(ex.Message);
}
}

void BtnCompressClick(object sender, EventArgs e)
{
try{
string archiveName = string.Empty;
SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = “ZIP File(*.zip)|*.zip|RAR File(*.rar)|*.rar“;
if( sfd.ShowDialog() == DialogResult.OK){
archiveName = sfd.FileName;

string[] fileFullNames = new string[this.listBox2.Items.Count];
int i = 0;
foreach(object o in this.listBox2.Items){
fileFullNames[i++] = o.ToString();
}

compressor.FileCompressionStarted += delegate {
this.label3.Text = “Start compressing...“;
};
compressor.FileCompressionFinished += delegate {
this.label3.Text = “Finish compressing.“;
};
compressor.CompressFiles(archiveName,fileFullNames);
ShowInformation(“Compressiong Finished!“);
}
}catch(Exception ex){
ShowException(ex.Message);
}
}
}
}
[/CODE]
体彩7星彩规则