时间:2016-02-16 01:06 来源: 我爱IT技术网 作者:佚名
欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【asp.net SharpZipLib的压缩与解压问题】,下面是详细的讲解!
asp.net SharpZipLib的压缩与解压问题
/// <summary>
/// 压缩文件
/// </summary>
/// <param name="sourceFilePath">源文件路径</param>
/// <param name="destinationPath">压缩文件后的保存路径</param>
/// <returns>压缩是否成功</returns>
public bool Compress(string sourceFilePath, string destinationPath)
{
try
{
string[] filenames=Directory.GetFiles(sourceFilePath);
using (ZipOutputStream zs=new ZipOutputStream(File.Create(destinationPath)))
{
zs.SetLevel(9);
byte[] buffer=new byte[4096];
foreach (string file in filenames)
{
ZipEntry entry=new ZipEntry(Path.GetFileName(file));
entry.DateTime=DateTime.Now;
zs.PutNextEntry(entry);
using (FileStream fs=File.OpenRead(file))
{
int sourceBytes;
do
{
sourceBytes=fs.Read(buffer, 0, buffer.Length);
zs.Write(buffer, 0, sourceBytes);
}
while (sourceBytes > 0);
}
}
zs.Finish();
zs.Flush();
zs.Close();
}
}
catch (Exception)
{
return false;
}
return true;
} public bool DeCompress(string sourceFilePath, string destinationPath)
{
try
{
using (ZipInputStream zs=new ZipInputStream(File.OpenRead(sourceFilePath)))
{
ZipEntry entry=null;
//解压缩*.rar文件运行至此处出错:Wrong Local header signature: 0x21726152,解压*.zip文件不出错
while ((entry=zs.GetNextEntry()) !=null)
{
string directoryName=Path.GetDirectoryName(entry.Name);
string fileName=Path.GetFileName(entry.Name);
if (!string.IsNullOrEmpty(fileName))
{
using (FileStream streamWriter=File.Create(destinationPath + entry.Name))
{
int size=2048;
byte[] data=new byte[size];
while (true)
{
size=zs.Read(data, 0, data.Length);
if (size > 0)
{
streamWriter.Write(data, 0, size);
}
else
{
break;
}
}
}
}
}
}
}
catch (System.Exception)
{
return false;
}
return true;
}
关于asp.net SharpZipLib的压缩与解压问题的用户互动如下:
相关问题:
答: >>详细
相关问题:
答: >>详细
相关问题:
答: >>详细
- 【asp】asp.net url重写浅谈-net-url重写
- 【DataSet】DataSet、DataTable、DataRow区别详解
- 【asp】asp.net 动态添加多个用户控件-net-动态添
- 【ASP】ASP.NET中内嵌页面代码的一个问题-NET-内
- 【As】Asp.net中的页面乱码的问题-sp--pn-ne-et
- 【增加记录】asp.net中获取新增加记录的ID Access
- 【创建】ASP.NET Web API教程 创建域模型的方法详
- 【Asp】Asp.net 页面调用javascript变量的值-net-
- 【ASP】ASP.NET 5升级后如何删除旧版本的DNX-NET5
- 【404页面】ASP.NET设置404页面返回302HTTP状态码
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
