using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.IO;
namespace Zip
{
public class ZipHelper
{
//需要下载7z工具包
private string _7zInstallPath = AppDomain.CurrentDomain.BaseDirectory + @"\7-Zip\7z.exe";
// Methods
public ZipHelper()
{
}
// Methods
public ZipHelper(string str7zInstallPath)
{
this._7zInstallPath = str7zInstallPath;
}
/// <summary>
/// 压缩文件夹目录
/// </summary>
/// <param name="strInDirectoryPath">指定需要压缩的目录,如C:\test\,将压缩test目录下的所有文件</param>
/// <param name="strOutFilePath">压缩后压缩文件的存放目录</param>
public void CompressDirectory(string strInDirectoryPath, string strOutFilePath)
{
Process process = new Process();
process.StartInfo.FileName = this._7zInstallPath;
process.StartInfo.Arguments = " a -t7z " + strOutFilePath + " " + strInDirectoryPath + " -r";
//隐藏DOS窗口
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
process.Close();
}
/// <summary>
/// 压缩文件
/// </summary>
/// <param name="strInFilePath">指定需要压缩的文件,如C:\test\demo.xlsx,将压缩demo.xlsx文件</param>
/// <param name="strOutFilePath">压缩后压缩文件的存放目录</param>
public void CompressFile(string strInFilePath, string strOutFilePath)
{
Process process = new Process();
process.StartInfo.FileName = this._7zInstallPath;
process.StartInfo.Arguments = " a -t7z " + strOutFilePath + " " + strInFilePath + "";
//隐藏DOS窗口
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
process.Close();
}
/// <summary>
/// 解压缩,覆盖并且不提示
/// </summary>
/// <param name="strInFilePath">压缩文件的路径</param>
/// <param name="strOutDirectoryPath">解压缩后文件的路径</param>
public void DecompressFileToDestDirectory(string strInFilePath, string strOutDirectoryPath)
{
Process process = new Process();
process.StartInfo.FileName = this._7zInstallPath;
process.StartInfo.Arguments = " x " + strInFilePath + " -aoa" + " -o" + strOutDirectoryPath + " -r ";
//隐藏DOS窗口
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
process.Close();
}
/// <summary>
/// 压缩文件并且压缩成功后删除原文件
/// </summary>
/// <param name="strInFilePath">指定需要压缩的文件,如C:\test\demo.xlsx,将压缩demo.xlsx文件</param>
/// <param name="strOutFilePath">压缩后压缩文件的存放目录</param>
public void CompressFileAndDel(string strInFilePath, string strOutFilePath)
{
Process process = new Process();
process.StartInfo.FileName = this._7zInstallPath;
process.StartInfo.Arguments = " a -t7z " + strOutFilePath + " " + strInFilePath + "";
//隐藏DOS窗口
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
process.Close();
if (File.Exists(strOutFilePath))
{
if (File.Exists(strInFilePath))
{
File.Delete(strInFilePath);
}
}
}
/// <summary>
/// 压缩文件并且压缩成功后删除原文件,压缩后的文件放在原文件相同目录下,并以相同名字+7z后缀命名
/// </summary>
/// <param name="strInFilePath">指定需要压缩的文件,如C:\test\demo.xlsx,将压缩demo.xlsx文件</param>
public void CompressFileAndDel(string strInFilePath)
{
string strOutFilePath = Path.GetDirectoryName(strInFilePath) + "\\" + Path.GetFileNameWithoutExtension(strInFilePath) + ".7z";
Process process = new Process();
process.StartInfo.FileName = this._7zInstallPath;
process.StartInfo.Arguments = " a -t7z " + strOutFilePath + " " + strInFilePath + "";
//隐藏DOS窗口
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
process.Close();
if (File.Exists(strOutFilePath))
{
if (File.Exists(strInFilePath))
{
File.Delete(strInFilePath);
}
}
}
}
}
7z.exe 压缩,解压缩
最新推荐文章于 2024-07-18 11:58:14 发布