dlcoder

博客园 首页 新随笔 联系 订阅 管理

最近因为项目需要,要求通过.Net将数据文件压缩为 .tar.gz格式。

目前很多压缩都是通过工具实现的。下面介绍如何通过SharpZipLib实现该功能。

分别引用以下两个命名空间,CompressTarFile函数部分为关键代码,其余的就不赘述。

 using System;
using ICSharpCode.SharpZipLib.Tar;
using ICSharpCode.SharpZipLib.GZip;

private void CompressTarFile()
        {
            string fileName = "F:\\test.tar.gz";//压缩后的文件名
            Stream outStream;
            outStream = File.OpenWrite(fileName);
            outStream = new GZipOutputStream(outStream);
            TarArchive archive = TarArchive.CreateOutputTarArchive(outStream, TarBuffer.DefaultBlockFactor);
            String[] files = Directory.GetFiles("F:\\TarGz\\");
            foreach (String name in files)
            {
                TarEntry entry = TarEntry.CreateEntryFromFile(name);
                archive.WriteEntry(entry, true);
            }
            if (archive != null)
            {
                archive.CloseArchive();
            }
        } 

posted on 2009-10-26 15:17  dlcoder  阅读(716)  评论(0编辑  收藏  举报