用SharpZipLib库如何压缩、解压缩一个目录?那位高手近来指点一下,谢谢。 用SharpZipLib库如何压缩、解压缩一个目录?那位高手近来指点一下,谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 /// <summary>/// 解压指定的zip文件/// </summary>/// <param name="filename">文件全路径名称</param>/// <param name="targetPath">解压后文件保存的路径名全称,必须带 “\”</param>public static void GetZipEntry(string filename,string targetPath){// 创建读取Zip文件对象ZipInputStream zos = new ZipInputStream(File.OpenRead(filename));// Zip文件中的每一个文件ZipEntry theEntry;// 循环读取Zip文件中的每一个文件while ((theEntry = zos.GetNextEntry()) != null) { string directoryName = targetPath;string fileName = Path.GetFileName(theEntry.Name); // create directoryif(!Directory.Exists(directoryName))Directory.CreateDirectory(directoryName); if (fileName != String.Empty) {// 解压文件FileStream streamWriter = File.Open(directoryName + fileName,FileMode.Create); int size = 2048;byte[] data = new byte[2048];while (true) {// 写入数据size = zos.Read(data, 0, data.Length);if (size > 0) {streamWriter.Write(data, 0, size);} else {break; }} streamWriter.Close();}}zos.Close();} 楼上的,得改写SharpZipLib吗?不用这么麻烦吧? 学习ing或许你可以这样做, 输入目录轮询目录一个文件一个文件压缩把压缩后的byte[]们组织一下生成一个记录文件 比如说文件名 文件内容(byte[]) 这样的格式 public static void PackFiles(string filename, string directory) { try { FastZip fz = new FastZip(); fz.CreateEmptyDirectories = true; fz.CreateZip(filename, directory, true, ""); fz = null; } catch (Exception) { throw; } } C#如何用webBroswer来打开新窗口 XtraTreeList控件输出Excel问题???? 客户端读取mht格式的问题 客户端激活方式连接Remoting,能自定义信通吗? 程序原理问题请教 com组件的问题 象这样的滚动条翻页是怎么实现的,是否是一次性读取所有数据 关于用户控件的问题(分不够在加)!!! 这样用Exception对吗?错在哪里? 怎样才能是三角裤多起来? 关于filestream的问题 返回类型不定的方法如何写?
/// 解压指定的zip文件
/// </summary>
/// <param name="filename">文件全路径名称</param>
/// <param name="targetPath">解压后文件保存的路径名全称,必须带 “\”</param>
public static void GetZipEntry(string filename,string targetPath)
{
// 创建读取Zip文件对象
ZipInputStream zos = new ZipInputStream(File.OpenRead(filename));
// Zip文件中的每一个文件
ZipEntry theEntry;
// 循环读取Zip文件中的每一个文件
while ((theEntry = zos.GetNextEntry()) != null)
{
string directoryName = targetPath;
string fileName = Path.GetFileName(theEntry.Name);
// create directory
if(!Directory.Exists(directoryName))
Directory.CreateDirectory(directoryName);
if (fileName != String.Empty)
{
// 解压文件
FileStream streamWriter = File.Open(directoryName + fileName,FileMode.Create);
int size = 2048;
byte[] data = new byte[2048];
while (true)
{
// 写入数据
size = zos.Read(data, 0, data.Length);
if (size > 0)
{
streamWriter.Write(data, 0, size);
}
else
{
break; }
}
streamWriter.Close();
}
}
zos.Close();
}
或许你可以这样做, 输入目录
轮询目录
一个文件一个文件压缩
把压缩后的byte[]们组织一下
生成一个记录文件
文件名 文件内容(byte[]) 这样的格式
{
try
{
FastZip fz = new FastZip();
fz.CreateEmptyDirectories = true;
fz.CreateZip(filename, directory, true, "");
fz = null;
}
catch (Exception)
{
throw;
}
}