首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用System.IO.Packaging生成ZIP文件

使用System.IO.Packaging生成ZIP文件
EN

Stack Overflow用户
提问于 2011-06-17 13:01:24
回答 2查看 37.6K关注 0票数 12

我知道,通常建议使用DotNetZip或SharpZipLib库来创建.net语言的ZIP文件(在我的例子中是C#),但是使用System.IO.Packaging生成ZIP文件并不是不可能的。我认为在C#中开发一个例程可能会很好,它可以做到这一点,而不需要下载任何外部库。有人有使用System.IO.Packaging生成ZIP文件的一个或多个方法的好例子吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-17 13:04:27

让我帮你搜索一下-> system.io.packaging+generate+zip

第一链路http://weblogs.asp.net/jongalloway//creating-zip-archives-in-net-without-an-external-library-like-sharpziplib

代码语言:javascript
复制
using System;
using System.IO;
using System.IO.Packaging;

namespace ZipSample
{
    class Program
    {
        static void Main(string[] args)
        {
            AddFileToZip("Output.zip", @"C:\Windows\Notepad.exe");
            AddFileToZip("Output.zip", @"C:\Windows\System32\Calc.exe");
        }

        private static void AddFileToZip(string zipFilename, string fileToAdd, CompressionOption compression = CompressionOption.Normal)
        {
            using (Package zip = System.IO.Packaging.Package.Open(zipFilename, FileMode.OpenOrCreate))
            {
                string destFilename = ".\\" + Path.GetFileName(fileToAdd);
                Uri uri = PackUriHelper.CreatePartUri(new Uri(destFilename, UriKind.Relative));
                if (zip.PartExists(uri))
                {
                    zip.DeletePart(uri);
                }
                PackagePart part = zip.CreatePart(uri, "", compression);
                using (FileStream fileStream = new FileStream(fileToAdd, FileMode.Open, FileAccess.Read))
                {
                    using (Stream dest = part.GetStream())
                    {
                        fileStream.CopyTo(dest);
                    }
                }
            }
        }              
    }
}
票数 34
EN

Stack Overflow用户

发布于 2014-06-12 13:51:37

在.NET Framework4.5中,您可以使用System.IO.Compression命名空间中的新类。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6386113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档