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

/// <summary>
/// 解压一个文件(夹)到zip同级文件夹中
/// </summary>
/// <param name="zipFileName">zip文件路径</param>
/// <param name="entryName">要解压的文件</param>
public void ExtractEntry(string zipFileName, string entryName)
{
ExtractEntry(zipFileName, entryName, null);
}
/// <summary>
/// 解压一个文件(夹)到指定文件夹中
/// </summary>
/// <param name="zipFileName">zip文件路径</param>
/// <param name="entryName">要解压的文件</param>
/// <param name="targetDirectory">目标路径</param>
public void ExtractEntry(string zipFileName, string entryName, string targetDirectory)
{
if (targetDirectory == null)
targetDirectory = Path.GetDirectoryName(zipFileName);
entryName = entryName.Replace("\\", "/");
if (string.IsNullOrEmpty(Path.GetExtension(entryName)) && !entryName.EndsWith("/"))
entryName += "/";
continueRunning_ = true;
overwrite_ = Overwrite.Always;
confirmDelegate_ = null;
extractNameTransform_ = new WindowsNameTransform(targetDirectory);
using (zipFile_ = new ZipFile(zipFileName))
{
if (password_ != null)
{
zipFile_.Password = password_;
}
System.Collections.IEnumerator enumerator = zipFile_.GetEnumerator();
while (continueRunning_ && enumerator.MoveNext())
{
ZipEntry entry = (ZipEntry)enumerator.Current;
if (entry.Name.Length >= entryName.Length && entry.Name.ToLower().Substring(0, entryName.ToLower().Length) == entryName.ToLower())
{
ExtractEntry(entry);
}
}
}
}
/// 解压一个文件(夹)到zip同级文件夹中
/// </summary>
/// <param name="zipFileName">zip文件路径</param>
/// <param name="entryName">要解压的文件</param>
public void ExtractEntry(string zipFileName, string entryName)
{
ExtractEntry(zipFileName, entryName, null);
}
/// <summary>
/// 解压一个文件(夹)到指定文件夹中
/// </summary>
/// <param name="zipFileName">zip文件路径</param>
/// <param name="entryName">要解压的文件</param>
/// <param name="targetDirectory">目标路径</param>
public void ExtractEntry(string zipFileName, string entryName, string targetDirectory)
{
if (targetDirectory == null)
targetDirectory = Path.GetDirectoryName(zipFileName);
entryName = entryName.Replace("\\", "/");
if (string.IsNullOrEmpty(Path.GetExtension(entryName)) && !entryName.EndsWith("/"))
entryName += "/";
continueRunning_ = true;
overwrite_ = Overwrite.Always;
confirmDelegate_ = null;
extractNameTransform_ = new WindowsNameTransform(targetDirectory);
using (zipFile_ = new ZipFile(zipFileName))
{
if (password_ != null)
{
zipFile_.Password = password_;
}
System.Collections.IEnumerator enumerator = zipFile_.GetEnumerator();
while (continueRunning_ && enumerator.MoveNext())
{
ZipEntry entry = (ZipEntry)enumerator.Current;
if (entry.Name.Length >= entryName.Length && entry.Name.ToLower().Substring(0, entryName.ToLower().Length) == entryName.ToLower())
{
ExtractEntry(entry);
}
}
}
}
使用示例:
复制内容到剪贴板
程序代码

(new FastZip()).ExtractEntry(@"E:\001a.zip", "a.txt"); //解压单个文件
(new FastZip()).ExtractEntry(@"E:\001a.zip", "test/a.dat"); //解压单个文件
(new FastZip()).ExtractEntry(@"E:\001a.zip", "images/"); //解压文件夹
(new FastZip()).ExtractEntry(@"E:\001a.zip", "test/a.dat"); //解压单个文件
(new FastZip()).ExtractEntry(@"E:\001a.zip", "images/"); //解压文件夹
SharpZipLib源码下载:http://www.icsharpcode.net/OpenSource/SharpZipLib/Download.aspx
评论: 0 | 引用: 0 | 查看次数: 6367
发表评论
请登录后再发表评论!