您的位置:首页 > 其它

解压.zip格式的文件

2013-07-30 22:42 239 查看
功能描述:

把.zip格式的文件解压后保存到另外的目录

1、引用ICSharpCode.SharpZipLib,大家可以到网上下载。

2、完成编码,我写的操作方法如下:

/// <summary>
/// 解压文件,只能解压.zip格式的文件
/// </summary>
/// <param name="filePah">.zip格式文件的路径</param>
/// <param name="savePath">保存的路径</param>
/// <returns></returns>
public static string decompress(string filePah,string savePath)
{
//返回保存后的路径,在savePath后再加一个自动生成的文件夹,防止文件夹重名
string requrnPath=null;
savePath = HttpContext.Current.Server.MapPath(savePath) + "/" + DateTime.Now.ToFileTime();

//判断是否存在该目录
if (!Directory.Exists(savePath))
Directory.CreateDirectory(savePath);

ZipInputStream inputStream = new ZipInputStream(File.OpenRead(filePah));
while (true)
{
ZipEntry zipEntry = inputStream.GetNextEntry();
if (zipEntry == null)
break;
//文件目录信息
string directory;
if (zipEntry.Name.IndexOf("/")>=0&&zipEntry.IsDirectory)
{
int index = zipEntry.Name.LastIndexOf("/");
directory = zipEntry.Name.Substring(0, index);
if (!Directory.Exists(savePath+"/"+directory))
Directory.CreateDirectory(savePath+"/"+directory);
requrnPath = savePath + "/" + zipEntry.Name;
}
if (!zipEntry.IsDirectory && zipEntry.Crc != 00000000L)//不说标记文件
{
int i = 1024;
byte[] b = new byte[i];
if (!Directory.Exists(savePath))
{
Directory.CreateDirectory(savePath);
}
FileStream fileStream = File.Create(savePath + "/" + zipEntry.Name);
while (true)
{
i = inputStream.Read(b, 0, b.Length);
if (i > 0)
{
fileStream.Write(b, 0, i);
}
else
break;
}
fileStream.Close();
}
}
inputStream.Close();
return requrnPath;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  文件解压 .NET