C# 压缩
我有: 文件名是例如data.txt。压缩工作正常,但当我查看压缩文件时,发现有一个名为“data”的文件。其中是“txt”扩展名。文件名仍应具有名称“data.txt” 我错过了什么或做错了什么 问候C# 压缩,c#,compression,zip,C#,Compression,Zip,我有: 文件名是例如data.txt。压缩工作正常,但当我查看压缩文件时,发现有一个名为“data”的文件。其中是“txt”扩展名。文件名仍应具有名称“data.txt” 我错过了什么或做错了什么 问候 kazik您可能希望使用然后附加gz扩展名。当您使用GZipStream压缩数据时,您提供的是一个字节流,而不是一个文件,GZipStream实例不知道该流是来自网络、内存还是文件,因此无法将文件名嵌入到存档中 但是,所有文件的内容都正确地保留在存档中。您可以使用7zip将它们解压缩到一个新文件
kazik您可能希望使用然后附加gz扩展名。当您使用
GZipStream
压缩数据时,您提供的是一个字节流,而不是一个文件,GZipStream
实例不知道该流是来自网络、内存还是文件,因此无法将文件名嵌入到存档中
但是,所有文件的内容都正确地保留在存档中。您可以使用7zip将它们解压缩到一个新文件中(默认情况下,给定一个标记名,例如
数据),重新命名您的文件,您将拥有一个与开始时相同的文件。如果您想要zip,请使用DotNetZip
public static void compress(string fileName)
{
using (FileStream inFile = File.OpenRead(Directory.GetCurrentDirectory() + "\\" + subFolder + "\\" + fileName))
{
string newFileName = fileName.Remove(fileName.Length - 3) + "zip";
using (FileStream outFile = File.Create(Directory.GetCurrentDirectory() + "\\" + subFolder + "\\" + newFileName))
{
using (GZipStream Compress = new GZipStream(outFile, CompressionMode.Compress))
{
inFile.CopyTo(Compress);
}
}
}
}