C#解压问题

来源:百度知道 编辑:UC知道 时间:2024/09/22 12:53:51
当一个压缩包包含一个以上的文件时,使用以下代码编写的程序只能解压出一个文件。为什么呢?
public class UnZipClass
{
/**/
/// <summary>
/// 解压文件
/// </summary>
/// <param name="args">包含要解压的文件名和要解压到的目录名数组</param>
public void UnZip(string[] args)
{
ZipInputStream s = new ZipInputStream(File.OpenRead(args[0]));
try
{
ZipEntry theEntry;
while ((theEntry = s.GetNextEntry()) != null)
{
string directoryName = Path.GetDirectoryName(args[1]);
string fileName = Path.GetFileName(theEntry.Name);

//生成解压目录
Directory.CreateDirectory(directoryName);

if (fileName != String.Empty)
{
//解压文件到指定的目录

File.OpenRead(args[0]));
代码从头到尾, 只打开一个文件

s.GetNextEntry() 不知道这个函数的作用是什么

针对你提出的问题可以这样解决:

首先查看一下GetNextEntry()是否能获取到下一个文件
如果不能, 那只能循环调用你贴出的函数, 每次都都只传一个文件
或者修改上面的函数