使用任意第三方组件,实现文件的压缩,最后压缩文件名的命名规则为:学号姓名.zip 用c#写
时间: 2024-09-20 14:08:12 浏览: 51
在C#中,你可以使用一些开源库如`System.IO.Compression`(原生支持)或者像SharpZipLib这样的第三方库来实现文件的压缩。下面是一个简单的示例,展示如何使用`System.IO.Compression.ZipFile`来创建压缩文件,并按照指定格式命名:
```csharp
using System.IO;
using System.IO.Compression;
public void CompressFile(string sourceFilePath, string studentId, string studentName)
{
// 检查文件是否存在
if (!File.Exists(sourceFilePath))
{
Console.WriteLine("源文件不存在!");
return;
}
// 创建压缩文件的完整路径
string zipPath = $"{studentId}_{studentName}.zip";
// 创建一个FileStream用于读取原始文件
using (FileStream sourceStream = File.OpenRead(sourceFilePath))
{
// 创建一个MemoryStream用于临时存储压缩数据
using (MemoryStream compressedStream = new MemoryStream())
{
// 创建一个DeflateStream用于实际的压缩操作
using (ZipArchive archive = ZipFile.CreateFromStream(compressedStream))
{
// 添加文件到压缩包中
archive.CreateEntryFromFile(sourceFilePath, Path.GetFileName(sourceFilePath));
}
// 将压缩后的数据写入磁盘
File.WriteAllBytes(zipPath, compressedStream.ToArray());
}
}
Console.WriteLine($"文件 {sourceFilePath} 已经压缩并保存为 {zipPath}");
}
// 调用函数
CompressFile("sourcefile.txt", "123456", "张三");
```
这个例子假设`sourceFilePath`是待压缩的文件路径,`studentId`和`studentName`分别代表学生的学号和姓名。注意,在实际应用中,你需要处理异常情况,例如检查压缩目录权限等。