/**//// <summary>
/// 压缩文件
/// </summary>
/// <param name="FileToZip">要进行压缩的文件名</param>
/// <param name="ZipedFile">压缩后生成的压缩文件名</param>
/// <returns></returns>
private static bool ZipFile(string FileToZip, string ZipedFile, String Password)
{
//如果文件没有找到,则报错
if (!File.Exists(FileToZip))
{
throw new System.IO.FileNotFoundException("指定要压缩的文件: " + FileToZip + " 不存在!");
}
//FileStream fs = null;
FileStream ZipFile = null;
ZipOutputStream ZipStream = null;
ZipEntry ZipEntry = null;
bool res = true;
try
{
ZipFile = File.OpenRead(FileToZip);
byte[] buffer = new byte[ZipFile.Length];
ZipFile.Read(buffer, 0, buffer.Length);
ZipFile.Close();
ZipFile = File.Create(ZipedFile);
ZipStream = new ZipOutputStream(ZipFile);
ZipStream.Password = Password;
ZipEntry = new ZipEntry(Path.GetFileName(FileToZip));
ZipStream.PutNextEntry(ZipEntry);
ZipStream.SetLevel(6);
ZipStream.Write(buffer, 0, buffer.Length);
}
catch
{
res = false;
}
finally
{
if (ZipEntry != null)
{
ZipEntry = null;
}
if (ZipStream != null)
{
ZipStream.Finish();
ZipStream.Close();
}
if (ZipFile != null)
{
ZipFile.Close();
ZipFile = null;
}
GC.Collect();
GC.Collect(1);
}
return res;
}
/**//// <summary>
/// 压缩文件 和 文件夹
/// </summary>
/// <param name="FileToZip">待压缩的文件或文件夹,全路径格式</param>
/// <param name="ZipedFile">压缩后生成的压缩文件名,全路径格式</param>
/// <returns></returns>
public static bool Zip(String FileToZip, String ZipedFile, String Password)
{
if (Directory.Exists(FileToZip))
{
return ZipFileDictory(FileToZip, ZipedFile, Password);
}
else if (File.Exists(FileToZip))
{
return ZipFile(FileToZip, ZipedFile, Password);
}
else
{
return false;
}
}
分享到:
相关推荐
标题提到的“利用C#压缩文件,简单明了,复制可用”意味着我们将探讨一个简洁且可以直接应用的C#代码片段,用于压缩单个或多个文件。 在C#中,最常用的库之一是System.IO.Compression命名空间下的ZipArchive类。这...
对于压缩单个文件,你可以创建一个新的ZipArchive实例,然后手动创建ZipArchiveEntry并写入文件内容。下面是一个简化的例子: ```csharp public static void CompressSingleFile(string sourceFilePath, string ...
对于解压缩,流程大致相同,但需要使用`RarOpenArchiveEx`打开已有压缩文件,然后通过`RarGetHeader`获取文件头信息,再用`RarExtractFile`解压指定的文件或所有文件。 在编写源代码时,需要注意错误处理,因为...
以下是一个简单的使用C#压缩文件的代码片段: ```csharp using ICSharpCode.SharpZipLib.Zip; using System.IO; public void CompressFile(string inputFile, string outputFile) { using (FileStream input = ...
本项目提供了一个基于C#语言实现的简单文件分割和文件合并的程序,这对于我们管理和传输大文件非常有帮助。以下是这个程序的核心知识点及详细解释: 1. **C#语言基础**:C#是一种面向对象的编程语言,由微软开发,...
// 获取单个压缩文件的属性 Console.WriteLine($"文件名: {entry.Name}"); Console.WriteLine($"大小: {entry.Length} 字节"); } } ``` 这个例子中,我们遍历了`ZipArchive`中的每个`ZipArchiveEntry`,它代表...
C#作为微软开发的一种面向对象的编程语言,提供了丰富的功能和库来处理字符串和文件操作,使得实现RLE压缩算法变得相对容易。 首先,让我们理解RLE的基本原理。RLE通过查找连续出现的相同字符,并用该字符和它的...
GZip主要用于单个文件的压缩,但也可以通过管道(pipe)与其他命令如tar结合,以处理多文件打包和压缩。例如,在Linux或Unix中,我们可以先用tar命令打包多个文件,然后通过管道将结果传递给gzip命令进行压缩: ```...
SharpCompress是用于.NET Standard 2.0、2.1,.NET Core 3.1和.NET 5.0的纯C#压缩库,可以解压缩,解压缩,解压缩,解压缩,解压缩unbzip2,ungzip,unlzip,并且具有只读读取和文件随机访问API。 实现了对zip / ...
一共给大家介绍了三段代码,一个是简单的解压缩单个zip文件,后一个可以解压批量的大量的但需要调用ICSharpCode.SharpZipLib.dll类了,最后一个比较实例可压缩也可以解压缩了分享给大家供大家参考。具体如下: 解...
在.NET开发环境中,C#程序员有时需要处理ZIP文件,例如创建、修改、删除或提取文件。在这种情况下,第三方库如`Ionic.Zip`提供了强大的功能,使得这些操作变得简单易行。`Ionic.Zip`是一个免费的、开源的.NET库,...
对于文本文件(如.txt),可以使用编程语言(如Python)或简单的文本编辑器来实现。例如,在Python中,可以通过读取每个文件并将其内容写入新的文件来完成合并。对于文档文件(如.docx或.pdf),则可以利用特定的...
GZIP通常用于文件和网络数据的压缩,但由于它是基于块的压缩,对于小规模的数据(如单个字符串),可能不会达到最佳的压缩效果。在实际应用中,如果需要处理大量数据或更高效的压缩,可以考虑使用其他压缩库,如Zlib...
【简易版log4C#】是一个专门为C#开发者设计的日志记录工具,它的核心目标是提供一个简单易用、功能实用的日志管理方案。在这个简易版本中,它着重于按月生成日志文件,便于开发者追踪和分析程序运行时的问题。这种...
4. **压缩单个文件**:在C#中,如果要压缩单个文件,可以使用`ZipFile.CreateFromDirectory`方法,但需要创建一个临时目录,将该文件复制到临时目录,然后压缩整个目录,最后删除临时目录。另一种方法是直接使用`Zip...
- 可以使用`File.Copy`和`File.Move`方法备份和移动文件,配合压缩库如`System.IO.Compression.GZipStream`实现文件的压缩备份。 - 数据库备份通常涉及数据库管理工具,如SQL Server Management Studio,或者使用...
《Unity中的C#压缩文件与文件夹:深入理解Ionic.Zip》 在Unity开发过程中,我们经常需要处理文件的压缩和解压操作,以优化资源管理、减小游戏包大小或者进行数据传输。本文将深入探讨使用C#库Ionic.Zip在Unity环境...
不过,由于只列出了一个文件,这意味着这个项目可能相对简单,或者源代码被压缩在单个文件内。 综上所述,这个C#开发的局域网聊天工具利用了C#的网络编程能力,通过局域网中的IP地址实现设备间的通信。用户界面允许...
在本文中,我们将深入探讨如何使用C#编程语言来显示应用程序事件日志。事件日志是Windows操作系统中一个重要的组成部分,它记录了应用程序、系统和服务的运行情况,帮助开发者诊断和解决问题。C#提供了丰富的API,...