【【【【C#压缩文件】】】】
方法1:
//【filepath想要压缩文件的地址】
//【zippath输出压缩文件的地址】
private void GetFileToZip(string filepath,string zippath)
{
FileStream fs = File.OpenRead(filepath);
byte[] buffer = new byte[fs.Length];
fs.Read(buffer, 0, buffer.Length);
fs.Close();
FileStream ZipFile = File.Create(zippath);
ZipOutputStream ZipStream = new ZipOutputStream(ZipFile);
ZipEntry ZipEntry = new ZipEntry(输出的文件名称);
ZipStream.PutNextEntry(ZipEntry);
ZipStream.SetLevel(6);
ZipStream.Write(buffer, 0, buffer.Length);
ZipStream.Finish();
ZipStream.Close();
}
方法2:
private void FileToZip(string path,string address)
{
string name = openFileDialog1.FileName.Substring(openFileDialog1.FileName.LastIndexOf("\\")+1);
FileStream StreamToZip = new FileStream(path, FileMode.Open, FileAccess.Read);
FileStream ZipFile = File.Create(address);
ZipOutputStream ZipStream = new ZipOutputStream(ZipFile);
//压缩文件
ZipEntry ZipEntry = new ZipEntry(name);
ZipStream.PutNextEntry(ZipEntry);
ZipStream.SetLevel(6);
byte[] buffer = new byte[StreamToZip.Length];
StreamToZip.Read(buffer, 0, Convert.ToInt32(StreamToZip.Length));
ZipStream.Write(buffer, 0, Convert.ToInt32(StreamToZip.Length));
ZipStream.Finish();
ZipStream.Close();
StreamToZip.Close();
}
【【【【【【C#解压文件】】】】】】
private void ZipToFile(string path, string addres)
{
ZipInputStream s = new ZipInputStream(File.OpenRead(path));
ZipEntry fileEntry;
while ((fileEntry = s.GetNextEntry()) != null)
{
string filename = Path.GetFileName(fileEntry.Name);
if (filename != "")
{
filename = addres + "\\" + filename;
FileStream streamWriter = File.Create(filename);
int size = 2048;
byte[] buffer = new byte[s.length];
size = s.Read(buffer, 0, size);
streamWriter.Write(buffer, 0, size);
streamWriter.Close();
}
}
s.Close();
}
【【【【【【C#压缩目录】】】】】】
方法1:
//【arg[0]要压缩的目录】
//【arg[1]输出的压缩文件】
private void DirectoryToZip(string path, string address)
{
//获取当前文件夹中所有的文件
string[] filenames = Directory.GetFiles(path);
Crc32 crc = new Crc32();
//创建输出文件(ZIP格式的文件)
ZipOutputStream zos = new ZipOutputStream(File.Create(address));
zos.SetLevel(6);
//遍历所有的文件
foreach (string name in filenames)
{
FileStream fs = File.OpenRead(name);
byte[] buffer = new byte[fs.Length];
//读取文件
fs.Read(buffer, 0, Convert.ToInt32(fs.Length));
//获取文件的文件名称和后缀名
string file = Path.GetFileName(name);
//输出文件的名称
ZipEntry entry = new ZipEntry(file);
crc.Reset();
crc.Update(buffer);
entry.Crc = crc.Value;
zos.PutNextEntry(entry);
zos.Write(buffer, 0, Convert.ToInt32(fs.Length));
fs.Close();
}
zos.Finish();
zos.Close();
}
【【【【【【【【C#读取压缩文件(将压缩文件转换为二进制)】】】】】】】】
private void GetZipToByte(){
string path = @"C:\Documents and Settings\Administrator\桌面\文件.rar";
FileStream fs = new FileStream(path, FileMode.Open);
bytes = new byte[fs.Length];
int count = Convert.ToInt32(fs.Length);
fs.Read(bytes, 0, count);
}
【【【【【【【【C#将二进制转换为压缩文件】】】】】】】】
private void GetByteToZip()
{
string path = @"F:\dom.rar";//压缩文件的地址
File.WriteAllBytes(path, bytes);
}
分享到:
相关推荐
本文将深入探讨如何使用C#进行大文件的GZip压缩与解压缩。 ### GZip压缩 GZip是一种广泛使用的数据压缩格式,它基于Deflate算法。在C#中,我们主要使用`GZipStream`类来进行GZip压缩。`GZipStream`是继承自`Stream...
在C#编程环境中,压缩文件是一项常见的任务,尤其在数据传输和存储中。本文将深入探讨如何使用C#来压缩单个文件以及多个文件,并基于VS2010的WinForm界面实现这一功能。 首先,我们需要引入System.IO.Compression...
本程序完全用C#编写,实现了解压缩、压缩单个文件、压缩文件夹功能
本篇文章将深入探讨如何利用.NET语言开发的第三方插件来实现这一目标,同时提供一个简单的C#压缩文件的DEMO,以便开发者能够快速上手。 首先,我们要了解.NET中的压缩技术。.NET Framework提供了System.IO....
首先,让我们来看看如何压缩文件。使用ZipArchive类,我们可以创建一个新的ZIP文件,并将一个或多个文件添加到其中。以下是一个简单的示例: ```csharp using System.IO; using System.IO.Compression; public ...
标题提到的“利用C#压缩文件,简单明了,复制可用”意味着我们将探讨一个简洁且可以直接应用的C#代码片段,用于压缩单个或多个文件。 在C#中,最常用的库之一是System.IO.Compression命名空间下的ZipArchive类。这...
这里是一个使用SharpCompress压缩文件的基本示例: ```csharp public static void CompressWithSharpCompress(string sourcePath, string zipPath, string password) { using (var writer = WriterFactory.Open...
在C#编程中,压缩和解压缩文件是常见的任务,特别是在处理大量数据或者优化存储空间时。本示例提供了一种不依赖于SharpZipLib库或.NET Framework自带的压缩和解压缩方法,而是基于一位国外开发者提供的算法进行改编...
C#压缩文件引用包 ICSharpCode.SharpZipLib
在C#编程环境中,处理压缩文件是常见的任务之一,尤其是当你需要打包或解压数据时。ZIP格式是一种广泛使用的压缩格式,它允许我们将多个文件压缩到一个单一的ZIP档案中,以便于存储、传输和分享。本文将深入探讨如何...
在C#中压缩文件的基本步骤如下: 1. **创建ZipArchive对象**:使用`ZipFile.CreateFromDirectory()`方法创建一个新的ZipArchive对象,这个方法接受源文件夹路径和目标压缩文件路径作为参数。 2. **添加文件**:如果...
3. **C#压缩文件夹**: 要压缩一个文件夹,首先获取该文件夹的所有文件和子文件夹,然后对每个文件创建`ZipArchiveEntry`,设置其名称(相对于压缩文件的路径),并用文件内容填充。代码示例如下: ```csharp ...
C#-文件压缩操作类(指定文件压缩、指定多文件压缩、压缩包解压)
此方法同样接收两个参数:`path`为待压缩文件的完整路径,`address`为压缩后ZIP文件的存储位置。该方法的功能与上一种方法类似,但更加注重实际应用,如在用户选择文件后进行压缩操作。 ### 三、C#代码实现文件解...
ICSharpCode.SharpZipLib是一个完全用C#编写的、无依赖的压缩库,提供了对ZIP、GZIP、BZip2等格式的支持。它允许开发者进行文件和流的压缩与解压缩操作,具有高度灵活性和定制性。 3. **使用ICSharpCode....
在C#编程环境中,文件压缩是一项常见的任务,特别是在数据存储、传输或备份时。本教程将深入探讨如何使用C#来实现对特定文件的压缩。我们将主要关注`System.IO.Compression`命名空间中的ZipArchive类,它是.NET ...
对文件夹下的所有子目录及所有文件进行压缩和解压,需在一起使用,有需要的可以下载下
在C#编程环境中,文件压缩是一项常见的任务,用于节省存储空间和提高数据传输效率。本教程将深入探讨如何使用C#实现文件和文件夹的压缩与解压缩功能,包括单个文件、多个文件以及整个文件夹的操作。我们将利用...