c#创建多级目录的ZIP文件

来源:互联网 发布:做电子相册什么软件好 编辑:程序博客网 时间:2024/05/29 04:51

调用ICSharpCode.SharpZipLib创建一个压缩文件,被压缩的文件夹中包含子目录,

在网上搜索了很多实例,发现或多或少均有点问题,经过实验发现原来其实很简单,根本不用递归什么的

代码如下:

public static void CreateZipFile(string filesPath, string zipFilePath)        {            if (!Directory.Exists(filesPath))            {                return;            }            ZipOutputStream stream = new ZipOutputStream(File.Create(zipFilePath));            stream.SetLevel(0); // 压缩级别 0-9            byte[] buffer = new byte[4096]; //缓冲区大小            string[] filenames = Directory.GetFiles(filesPath, "*.*", SearchOption.AllDirectories);            foreach (string file in filenames)            {                ZipEntry entry = new ZipEntry(file.Replace(filesPath, ""));                entry.DateTime = DateTime.Now;                stream.PutNextEntry(entry);                using (FileStream fs = File.OpenRead(file))                {                    int sourceBytes;                    do                    {                        sourceBytes = fs.Read(buffer, 0, buffer.Length);                        stream.Write(buffer, 0, sourceBytes);                    } while (sourceBytes > 0);                }            }            stream.Finish();            stream.Close();        }
其中filesPath是被压缩的路径

zipFilePath是压缩文件的路径

0 0