usingICSharpCode.SharpZipLib.Zip;
usingSystem;
usingSystem.Collections.Generic;
usingSystem.IO;
namespaceZhong.Core
{
///
///紧缩解压操作类,使用的是SharpZipLib
///
publicclassDCompress
{
privatestaticobjectoperateLock=newobject();
///
///紧缩文件
///
///要紧缩的文件途径
///生成的紧缩文件途径
publicstaticvoidCompressFile(stringsrcFile,stringdestFile)
{
lock(operateLock)
{
if(string.IsNullOrEmpty(srcFile)||string.IsNullOrEmpty(destFile))
{
thrownewArgumentException(“参数过错”);
}
FileStreamfileStreamIn=newFileStream(srcFile,FileMode.Open,FileAccess.Read);
FileStreamfileStreamOut=newFileStream(destFile,FileMode.Create,FileAccess.Write);
ZipOutputStreamzipOutStream=newZipOutputStream(fileStreamOut);
//zipOutStream.SetLevel(6);//设置紧缩等级,默以为6
byte[]buffer=newbyte[4096];
ZipEntryentry=newZipEntry(Path.GetFileName(srcFile));
zipOutStream.PutNextEntry(entry);
intsize;
do
{
size=fileStreamIn.Read(buffer,0,buffer.Length);
zipOutStream.Write(buffer,0,size);
}while(size>0);
zipOutStream.Dispose();
fileStreamOut.Dispose();
fileStreamIn.Dispose();
}
}
///
///紧缩多个文件
///
///多个文件途径
///紧缩文件的途径
publicstaticvoidZipFiles(string[]srcFiles,stringdestFile)
{
if(srcFiles==null||string.IsNullOrEmpty(destFile))
{
thrownewArgumentException(“参数过错”);
}
using(ZipFilezip=ZipFile.Create(destFile))
{
zip.BeginUpdate();
//addfile
foreach(stringfilePathinsrcFiles)
{
zip.Add(filePath);
}
zip.CommitUpdate();
}
//(newFastZip()).CreateZip(@”E:1.zip”,@”E:1”,true,””);
}
///
///紧缩目录
///
///目录途径
///紧缩文件途径
publicstaticvoidZipDir(stringdir,stringdestFile)
{
if(string.IsNullOrEmpty(dir)||string.IsNullOrEmpty(destFile))
{
thrownewArgumentException(“参数过错”);
}
string[]files=Directory.GetFiles(dir,”*.*”,SearchOption.AllDirectories);
ZipFiles(files,destFile);
}
///
///列表紧缩文件里的所有文件
///
///紧缩文件途径
///
publicstaticListGetFileList(stringzipPath)
{
Listfiles=newList();
if(string.IsNullOrEmpty(zipPath))
{
thrownewArgumentException(“参数过错”);
}
using(ZipFilezip=newZipFile(zipPath))
{
stringlist=string.Empty;
foreach(ZipEntryentryinzip)
{
if(entry.IsFile)
{
files.Add(entry.Name);
}
}
}
returnfiles;
}
///
///删去zip文件中的某个文件
///
///紧缩文件途径
///要删去的某个文件
publicstaticvoidDeleteFileFromZip(stringzipPath,string[]files)
{
if(string.IsNullOrEmpty(zipPath)||files==null)
{
thrownewArgumentException(“参数过错”);
}
using(ZipFilezip=newZipFile(zipPath))
{
zip.BeginUpdate();
foreach(stringfinfiles)
{
zip.Delete(f);
}
zip.CommitUpdate();
}
}
///
///解压文件
///
///要解压的文件
///解压后放置的目录
publicstaticvoidUnZipFile(stringzipPath,stringoutputDir)
{
(newFastZip()).ExtractZip(zipPath,outputDir,””);
}
///
///解压文件
///
///紧缩文件途径
///解压后文件夹的途径
publicstaticvoidDecompress(stringsrcFile,stringdestDir)
{
lock(operateLock)
{
FileStreamfileStreamIn=newFileStream(srcFile,FileMode.Open,FileAccess.Read);
ZipInputStreamzipInStream=newZipInputStream(fileStreamIn);
if(!Directory.Exists(destDir))
{
Directory.CreateDirectory(destDir);
}
ZipEntryentry;
while((entry=zipInStream.GetNextEntry())!=null)
{
FileStreamfileStreamOut=newFileStream(destDir+@””+entry.Name,FileMode.Create,FileAccess.Write);
intsize;
byte[]buffer=newbyte[4096];
do
{
size=zipInStream.Read(buffer,0,buffer.Length);
fileStreamOut.Write(buffer,0,size);
}while(size>0);
fileStreamOut.Dispose();
}
zipInStream.Dispose();
fileStreamIn.Dispose();
}
}
}
}
1、IT大王遵守相关法律法规,由于本站资源全部来源于网络程序/投稿,故资源量太大无法一一准确核实资源侵权的真实性;
2、出于传递信息之目的,故IT大王可能会误刊发损害或影响您的合法权益,请您积极与我们联系处理(所有内容不代表本站观点与立场);
3、因时间、精力有限,我们无法一一核实每一条消息的真实性,但我们会在发布之前尽最大努力来核实这些信息;
4、无论出于何种目的要求本站删除内容,您均需要提供根据国家版权局发布的示范格式
《要求删除或断开链接侵权网络内容的通知》:https://itdw.cn/ziliao/sfgs.pdf,
国家知识产权局《要求删除或断开链接侵权网络内容的通知》填写说明: http://www.ncac.gov.cn/chinacopyright/contents/12227/342400.shtml
未按照国家知识产权局格式通知一律不予处理;请按照此通知格式填写发至本站的邮箱 wl6@163.com