fileSource为需要解压缩文件路径,fileDestination为解压缩后文件存储路径,例如:
FileProperties[0] = "E:/VS_projects/project1/files/WpfApplication3.zip";//待解压的文件
FileProperties[1] = "E:/VS_projects/project1/files/";//解压后放置的目标目录
bool isUnZipSuccess = unZipFile(FileProperties[0], FileProperties[1]);
//文件解压缩
public bool unZipFile(string fileSource, string fileDestination)
{
ZipInputStream zipInput = null;
FileStream fileStream = null;
try
{
fileStream = File.OpenRead(fileSource);
zipInput = new ZipInputStream(fileStream);
//zipInput.Password = password;
ZipEntry theEntry;
while ((theEntry = zipInput.GetNextEntry()) != null)
{
string tempPath = fileDestination + theEntry.Name;
if (theEntry.IsDirectory)
{
if (!Directory.Exists(tempPath))
{
Directory.CreateDirectory(tempPath);
}
}
else
{
using (FileStream streamWriter = File.Create(tempPath))
{
byte[] buffer = new byte[10240];
int size = zipInput.Read(buffer, 0, buffer.Length);
while (size > 0)
{
streamWriter.Write(buffer, 0, size);
size = zipInput.Read(buffer, 0, buffer.Length);
}
}
}
}
return true;
}
catch (Exception e)
{
return false;
}
finally
{
if (fileStream != null)
{
fileStream.Close();
fileStream.Dispose();
}
if (zipInput != null)
{
zipInput.Close();
zipInput.Dispose();
}
}
}