当前位置:  开发笔记 > 编程语言 > 正文

如何在c#中仅使用.net api压缩多个文件

如何解决《如何在c#中仅使用.netapi压缩多个文件》经验,为你挑选了3个好方法。

我喜欢压缩在我的Web应用程序中动态创建的多个文件.这些文件应该压缩.为此,我不想使用任何第三方工具.就像在c#中使用.net api一样



1> Ruben Bartel..:

在.NET 3.0+中使用System.IO.Packaging.

请参阅System.IO.Packaging的这个简介


如果你能够采用.NET 4.5依赖,那么宇宙中就有一个System.IO.Compression.ZipArchive ; 请参阅此处的演练文章(通过InfoQ新闻摘要文章)


只是注意:这是有史以来最丑的API,用于压缩.

2> rjzii..:

随着.NET Framework 4.5的发布,现在通过添加ZipFile类的System.IO.Compression更新实际上要容易得多.在codeguru上有一个很好的演练 ; 但是,基础知识符合以下示例:

using System.Collections.Generic;
using System.IO;
using System.IO.Compression;
using System.IO.Compression.FileSystem;

namespace ZipFileCreator
{
    public static class ZipFileCreator
    {
        /// 
        /// Create a ZIP file of the files provided.
        /// 
        /// The full path and name to store the ZIP file at.
        /// The list of files to be added.
        public static void CreateZipFile(string fileName, IEnumerable files)
        {
            // Create and open a new ZIP file
            var zip = ZipFile.Open(fileName, ZipArchiveMode.Create);
            foreach (var file in files)
            {
                // Add the entry for each file
                zip.CreateEntryFromFile(file, Path.GetFileName(file), CompressionLevel.Optimal);
            }
            // Dispose of the object when we are done
            zip.Dispose();
        }
    }
}


从数据库中获取文件(blob)数据时如何执行此操作?

3> cjk..:

我不确定你不想使用第三方工具是什么意思,但我认为你不希望一些讨厌的互操作以编程方式通过另一个软件来实现.

我建议使用ICSharpCode SharpZipLib

这可以作为参考DLL添加到您的项目中,并且可以非常简单地创建ZIP文件并阅读它们.

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有