不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
SharpZipLib解压单个文件和文件夹
编辑:dnawo 日期:2010-11-02
复制内容到剪贴板
程序代码

using System;
using System.IO;
using ICSharpCode.SharpZipLib.Zip;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
ExtractFile(@"E:\mzwu.zip", @"code/default.htm");
ExtractFile(@"E:\mzwu.zip", "jquery-1.3.2.js", @"F:\a\b\c\d.js");
ExtractDirectory(@"E:\mzwu.zip");
ExtractDirectory(@"E:\mzwu.zip", @"E:\a\b\c\");
Console.WriteLine("ok");
Console.Read();
}
/// <summary>
/// 解压单个文件
/// </summary>
/// <param name="zipfile"></param>
/// <param name="sourcename"></param>
static void ExtractFile(string zipfile, string sourcename)
{
ExtractFile(zipfile, sourcename, null);
}
/// <summary>
/// 解压单个文件
/// </summary>
/// <param name="zipfile"></param>
/// <param name="sourcename"></param>
/// <param name="destname"></param>
static void ExtractFile(string zipfile, string sourcename, string destname)
{
ZipEntry entry;
byte[] b = new byte[1024];
int length;
using (ZipInputStream s = new ZipInputStream(File.Open(zipfile, FileMode.Open)))
{
while ((entry = s.GetNextEntry()) != null)
{
if (entry.IsFile && entry.Name.ToLower().Equals(sourcename.ToLower(), StringComparison.CurrentCultureIgnoreCase))
{
if (destname == null)
destname = zipfile.Replace(Path.GetFileName(zipfile), Path.GetFileName(entry.Name));
if(!Directory.Exists(Path.GetDirectoryName(destname)))
Directory.CreateDirectory(Path.GetDirectoryName(destname));
using (FileStream fs = File.Create(destname))
{
while ((length = s.Read(b, 0, b.Length)) > 0)
{
fs.Write(b, 0, length);
}
}
return;
}
}
}
}
/// <summary>
/// 解压文件夹
/// </summary>
/// <param name="zipfile"></param>
static void ExtractDirectory(string zipfile)
{
ExtractDirectory(zipfile, null);
}
/// <summary>
/// 解压文件夹
/// </summary>
/// <param name="zipfile"></param>
/// <param name="destpath"></param>
static void ExtractDirectory(string zipfile, string destpath)
{
ZipEntry entry;
string str;
byte[] b = new byte[1024];
int length;
if (destpath == null)
destpath = zipfile.Replace(Path.GetExtension(zipfile), "");
using (ZipInputStream s = new ZipInputStream(File.Open(zipfile, FileMode.Open)))
{
while ((entry = s.GetNextEntry()) != null)
{
str = Path.Combine(destpath, entry.Name);
if (entry.IsDirectory)
{
Directory.CreateDirectory(str);
}
else if (entry.IsFile)
{
Directory.CreateDirectory(Path.GetDirectoryName(str));
using (FileStream fs = File.Create(str))
{
while ((length = s.Read(b, 0, b.Length)) > 0)
{
fs.Write(b, 0, length);
}
}
}
}
}
}
}
}
using System.IO;
using ICSharpCode.SharpZipLib.Zip;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
ExtractFile(@"E:\mzwu.zip", @"code/default.htm");
ExtractFile(@"E:\mzwu.zip", "jquery-1.3.2.js", @"F:\a\b\c\d.js");
ExtractDirectory(@"E:\mzwu.zip");
ExtractDirectory(@"E:\mzwu.zip", @"E:\a\b\c\");
Console.WriteLine("ok");
Console.Read();
}
/// <summary>
/// 解压单个文件
/// </summary>
/// <param name="zipfile"></param>
/// <param name="sourcename"></param>
static void ExtractFile(string zipfile, string sourcename)
{
ExtractFile(zipfile, sourcename, null);
}
/// <summary>
/// 解压单个文件
/// </summary>
/// <param name="zipfile"></param>
/// <param name="sourcename"></param>
/// <param name="destname"></param>
static void ExtractFile(string zipfile, string sourcename, string destname)
{
ZipEntry entry;
byte[] b = new byte[1024];
int length;
using (ZipInputStream s = new ZipInputStream(File.Open(zipfile, FileMode.Open)))
{
while ((entry = s.GetNextEntry()) != null)
{
if (entry.IsFile && entry.Name.ToLower().Equals(sourcename.ToLower(), StringComparison.CurrentCultureIgnoreCase))
{
if (destname == null)
destname = zipfile.Replace(Path.GetFileName(zipfile), Path.GetFileName(entry.Name));
if(!Directory.Exists(Path.GetDirectoryName(destname)))
Directory.CreateDirectory(Path.GetDirectoryName(destname));
using (FileStream fs = File.Create(destname))
{
while ((length = s.Read(b, 0, b.Length)) > 0)
{
fs.Write(b, 0, length);
}
}
return;
}
}
}
}
/// <summary>
/// 解压文件夹
/// </summary>
/// <param name="zipfile"></param>
static void ExtractDirectory(string zipfile)
{
ExtractDirectory(zipfile, null);
}
/// <summary>
/// 解压文件夹
/// </summary>
/// <param name="zipfile"></param>
/// <param name="destpath"></param>
static void ExtractDirectory(string zipfile, string destpath)
{
ZipEntry entry;
string str;
byte[] b = new byte[1024];
int length;
if (destpath == null)
destpath = zipfile.Replace(Path.GetExtension(zipfile), "");
using (ZipInputStream s = new ZipInputStream(File.Open(zipfile, FileMode.Open)))
{
while ((entry = s.GetNextEntry()) != null)
{
str = Path.Combine(destpath, entry.Name);
if (entry.IsDirectory)
{
Directory.CreateDirectory(str);
}
else if (entry.IsFile)
{
Directory.CreateDirectory(Path.GetDirectoryName(str));
using (FileStream fs = File.Create(str))
{
while ((length = s.Read(b, 0, b.Length)) > 0)
{
fs.Write(b, 0, length);
}
}
}
}
}
}
}
}
评论: 0 | 引用: 0 | 查看次数: 5364
发表评论
请登录后再发表评论!