C#压缩文件夹坑~

dotNet疯狂之路No.29

 今天很残酷,明天更残酷,后天很美好,但是绝大部分人是死在明天晚上,只有那些真正的英雄才能见到后天的太阳。

 We‘re here to put a dent in the universe. Otherwise why else even be here?  

开始从网上找了个压缩的示例  我去坑的不要不要的 没办法重新找 都是复制来复制去 没啥意思

前提:ICSharpCode.SharpZipLib.dll引用

创建一个类

public class ZipClass
{
    /// <summary>
    /// 功能:压缩文件(暂时只压缩文件夹下一级目录中的文件,文件夹及其子级被忽略)
    /// </summary>
    /// <param name="dirPath">被压缩的文件夹夹路径</param>
    /// <param name="zipFilePath">生成压缩文件的路径</param>
    /// <returns>是否压缩成功</returns>
    public static bool ZipFiles(string dirPath, string zipFilePath )
    {

        try
        {
            string[] filenames = Directory.GetFiles(dirPath);
            using (ZipOutputStream s = new ZipOutputStream(File.Create(zipFilePath)))
            {
                s.SetLevel(9);//0-9 值越大压缩率越高
                byte[] buffer = new byte[4096];
                foreach (string file in filenames)
                {
                    ZipEntry entry = new ZipEntry(Path.GetFileName(file));
                    entry.DateTime = DateTime.Now;
                    s.PutNextEntry(entry);
                    using (FileStream fs = File.OpenRead(file))
                    {
                        int sourceBytes;
                        do
                        {
                            sourceBytes = fs.Read(buffer, 0, buffer.Length);
                            s.Write(buffer, 0, sourceBytes);
                        } while (sourceBytes > 0);
                    }
                }
                s.Finish();
                s.Close();
            }
        }
        catch (Exception ex)
        {

            return false;
        }
        return true;
    }

}

  

时间: 2024-12-15 12:14:36

C#压缩文件夹坑~的相关文章

C#压缩文件夹

using System;using System.Collections.Generic;using System.Text; ///第三方dllusing ICSharpCode.SharpZipLib;using ICSharpCode.SharpZipLib.Checksums;using ICSharpCode.SharpZipLib.Zip;using System.IO;using log4net;using log4net.Config;using System.Text.Reg

C#压缩文件夹至zip,不包含所选文件夹【转+修改】

转自园友:jimcsharp的博文C#实现Zip压缩解压实例[转] 在此基础上,对其中的压缩文件夹方法略作修正,并增加是否对父文件夹进行压缩的方法.(因为笔者有只压缩文件夹下的所有文件,却不想将选中的文件夹打入压缩文件的需求),话不多说,上代码:其中需要依赖ICSharpCode.SharpZipLib.dll: 之后,新建一个类,代码如下: using System; using System.Collections.Generic; using System.Linq; using Syst

Java使用线程池递归压缩文件夹下面的所有子文件

本文将介绍Java中利用线程池递归的方式压缩文件夹下面的所有子文件,具体方法如下: Gzip单个文件压缩 对于单个文件使用GZip压缩. package date0805.demo1; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream

C#利用SharpZipLib解压或压缩文件夹实例操作

最近要做一个项目涉及到C#中压缩与解压缩的问题的解决方法,大家分享. 这里主要解决文件夹包含文件夹的解压缩问题. )下载SharpZipLib.dll,在http://www.icsharpcode.net/OpenSource/SharpZipLib/Download.aspx中有最新免费版本,“Assemblies for .NET 1.1, .NET 2.0, .NET CF 1.0, .NET CF 2.0: Download [297 KB] ”点击Download可以下载,解压后里边

Beyond Compare同步压缩文件夹的步骤

Beyond Compare是一款功能强大的对比软件,其中压缩文件和其他文档类型,和对比普通文件夹相同,都可以内置扩展用于对比和更新它们的内容.那么在使用Beyond Compare软件进行文件夹同步操作时,压缩文件夹也可以同步吗?本节内容主要讲解,设置Beyond Compare同步压缩文件的操作方法. 具体操作步骤如下所示 步骤一:打开Beyond Compare软件,选择文件夹同步会话,打开会话操作界面.单击“浏览”按钮选择需要同步的文件夹,如下图图例所示,左右两侧窗格内的压缩文件以普通文

怎么在Beyond Compare中同步压缩文件夹

Beyond Compare 4 中文版作为一款功能强大范围广泛的文件对比工具,在使用过程中你会发现它有很多非常贴心便捷的功能.比如其在对比文件夹的过程中,如果你需要把文件夹压缩,那么你在对比的过程中,可以同步的压缩文件夹.下面本教程就来给大家介绍介绍怎么在Beyond Compare中同步压缩文件夹? 原文:http://www.beyondcompare.cc/jiqiao/yasuo-wenjianjia.html 具体操作步骤如下所示 步骤一:打开Beyond Compare软件,选择文

php自带压缩类压缩文件夹

// 压缩文件夹 function addFileToZip($path,$zip){ $handler=opendir($path); //打开当前文件夹由$path指定. while(($filename=readdir($handler))!==false){ if($filename != "." && $filename != ".."){//文件夹文件名字为'.'和'..',不要对他们进行操作 if(is_dir($path."

简单测试Demo:如何用Java压缩文件夹和文件

一.直接贴出测试代码 1 package com.jason.zip; 2 3 import java.io.File; 4 import java.io.FileInputStream; 5 import java.io.FileOutputStream; 6 import java.io.IOException; 7 import java.io.OutputStream; 8 import java.util.ArrayList; 9 import java.util.List; 10 i

Java 压缩文件夹工具类(包含解压)

依赖jar <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-compress</artifactId> <version>1.18</version> </dependency> CompressUtils.java package utils; import java.io.BufferedInputStream;