C# 文件压缩下载
2014-10-28 09:47
155 查看
我们开发的过程中,有时用户要求下载的时候把文件进行压缩,以压缩包的形式下载到本地,方便保存和分类,以下是文件压缩的一个方法,以供参考
(注:System.IO.Packaging 需要引用WindowsBase.dll,才可以用)
(注:System.IO.Packaging 需要引用WindowsBase.dll,才可以用)
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.IO.Packaging; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Console.WriteLine("开始压缩"); try { PackageFolder(@"E:\IMG", @"E:\压缩包.zip", false); } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.WriteLine("压缩完成"); } /// <summary> /// 包含子文件夹一起压缩成压缩包文件 /// </summary> /// <param name="folderName">要压缩的文件夹</param> /// <param name="compressedFileName">压缩后存放路径</param> /// <param name="overrideExisting">压缩文件存在是否覆盖</param> /// <returns>是否压缩成功</returns> /// <Author></Author> public static Boolean PackageFolder(String folderName, String compressedFileName, Boolean overrideExisting) { if (folderName.EndsWith(@"\")) folderName = folderName.Remove(folderName.Length - 1); Boolean result = false; if (!Directory.Exists(folderName)) { return result; } if (!overrideExisting && File.Exists(compressedFileName)) { return result; } try { using (Package package = Package.Open(compressedFileName, FileMode.Create)) { var fileList = Directory.EnumerateFiles(folderName, "*", SearchOption.AllDirectories); foreach (String fileName in fileList) { //获取所有子文件的文件 String pathInPackage; pathInPackage = Path.GetDirectoryName(fileName).Replace(folderName, String.Empty) + "/" + Path.GetFileName(fileName); Uri partUriDocument = PackUriHelper.CreatePartUri(new Uri(pathInPackage, UriKind.Relative)); PackagePart packagePartDocument = package.CreatePart(partUriDocument, "", CompressionOption.Fast); using (FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read)) { fileStream.CopyTo(packagePartDocument.GetStream()); } } } result = true; } catch (Exception e) { throw new Exception("压缩文件夹错误: " + folderName, e); } return result; } } }
相关文章推荐
- C# ICSharpCode.SharpZipLib.dll文件压缩和解压功能类整理,上传文件或下载文件很常用
- c#下载压缩文件
- C# 压缩打包文件下载
- C#使用ICSharpCode.SharpZipLib压缩后进行web批量下载文件
- C# 压缩打包文件下载
- C# 压缩打包文件下载
- C#使用ICSharpCode.SharpZipLib压缩后进行web批量下载文件
- C#实现从FTP服务器下载压缩文件并解压.
- 在C#中在服务器上打包压缩文件,并下载
- 在C#中利用SharpZipLib进行文件的压缩和解压缩
- ASP和C#隐藏文件下载路径的方法
- 在C#中利用SharpZipLib进行文件的压缩和解压缩
- 在C#中利用SharpZipLib进行文件的压缩和解压缩
- C#中下载Excel文件(其实就是将Excel文件从一个路径Copy到另一个路径)
- 用C# Builder实现文件下载
- 使文件下载的自定义连接支持 FlashGet 的断点续传多线程链接下载! C#/ASP.Net 实现!
- 在C#中压缩解压缩文件(适合.Net1.x)
- asp.net(C#)文件下载的一个问题请教
- 下载文件时不要全部读入内存(C#)
- 使用C#2.0进行文件压缩和解压