C# ZIP 目录文件压缩
来源:互联网 发布:天刀男捏脸数据白玉京 编辑:程序博客网 时间:2024/05/18 01:05
1.项目导入sharpziplib.dll
using ICSharpCode.SharpZipLib;
using ICSharpCode.SharpZipLib.Zip;
using ICSharpCode.SharpZipLib.Checksums;
#region 压缩目录文件
public static string CompressDirectory(string directory, string outputFileName)
{
return CompressDirectory(directory, outputFileName, null);
}
public static string CompressDirectory(string directory, string outputFileName, string password)
{
ArrayList fileList = PopulateFileList(directory);
int parentDirectoryNameLength = (Directory.GetParent(directory)).ToString().Length;
//remove the last'/'
parentDirectoryNameLength += 1;
byte[] buffer;
string outPath = directory + @"/" + outputFileName;
FileStream fileStream = null;
// create zip stream
using (ZipOutputStream zipStream = new ZipOutputStream(File.Create(outPath)))
{
try
{
if (!string.IsNullOrEmpty(password))
{
zipStream.Password = password;
}
zipStream.SetLevel(6); // compress level 0---9
ZipEntry zipEntity = null;
foreach (string fileName in fileList)
{
zipEntity = new ZipEntry(fileName.Remove(0, parentDirectoryNameLength));
zipStream.PutNextEntry(zipEntity);
//it is really a file
if (!fileName.EndsWith(@"/"))
{
fileStream = File.OpenRead(fileName);
buffer = new byte[fileStream.Length];
fileStream.Read(buffer, 0, buffer.Length);
zipStream.Write(buffer, 0, buffer.Length);
}
}
}
catch (Exception)
{
}
finally
{
fileStream.Close();
fileStream.Dispose();
zipStream.Finish();
zipStream.Close();
zipStream.Dispose();
}
}
return outPath;
}
private static ArrayList PopulateFileList(string directory)
{
ArrayList filesList = new ArrayList();
bool isEmpty = true;
foreach (string file in Directory.GetFiles(directory)) // add each file in directory
{
filesList.Add(file);
isEmpty = false;
}
// all subcategory was added
if (isEmpty)
{
if (Directory.GetDirectories(directory).Length == 0)
{
filesList.Add(directory + @"/");
}
}
// recursive
foreach (string dirs in Directory.GetDirectories(directory))
{
foreach (object obj in PopulateFileList(dirs))
{
filesList.Add(obj);
}
}
return filesList;
}
#endregion
- C# ZIP 目录文件压缩
- C# 压缩 ZIP文件
- C#压缩解压zip 文件
- C#压缩解压zip 文件
- C#压缩解压zip 文件
- C#压缩解压zip 文件
- 文件压缩为zip--C#
- java 处理zip压缩/解压 文件/目录
- C#压缩与解压缩(zip文件)
- C#压缩与解压缩(zip文件)
- C# 文件压缩与解压(ZIP格式)
- C# 文件压缩与解压(ZIP格式)
- c# zip压缩多个文件
- C# 文件压缩与解压(ZIP格式)
- C# 文件压缩与解压(ZIP格式)
- c#创建多级目录的ZIP文件
- Java 把文件/目录压缩成zip文件
- C# ZIP文件的压缩和解压缩(SharpZipLib.dll)
- 登陆局域网记住了密码如何清除?
- C++中extern “C”含义深层探索
- objective-c 自动封装类的属性
- 【Perl】 Require 和 USE的区别
- 《HTML 5用户指南》勘误
- C# ZIP 目录文件压缩
- CreateFile,ReadFile等API详解(或者说MSDN的翻译)
- CAP原理与最终一致性
- 云计算的思考
- HTTP协议详解
- 站起来,中国人
- MFC学习笔记之:7种访问对话框控件的方式
- C# 文件下载
- ASP.NET学习步骤