我在当前目录中有一个文件,名称为firstName
。我想用这个文件创建一个存档(文件名必须保留)。存档名称必须是archiveName
。但是当我使用我的代码时,我得到一个带有rigth名称的存档,但其中的文件名已被更改。我该如何解决?
public static void Compress(string firstName, string secondName)
{
FileInfo fileToCompress = new FileInfo(firstName);
using (FileStream originalFileStream = fileToCompress.OpenRead())
{
if ((File.GetAttributes(fileToCompress.FullName) &
FileAttributes.Hidden) != FileAttributes.Hidden & fileToCompress.Extension != ".gz")
{
using (FileStream compressedFileStream = File.Create(secondName))
{
using (GZipStream compressionStream = new GZipStream(compressedFileStream,
CompressionMode.Compress))
{
originalFileStream.CopyTo(compressionStream);
}
}
FileInfo info = new FileInfo(secondName);
Console.WriteLine("Compressed {0} from {1} to {2} bytes.",
fileToCompress.Name, fileToCompress.Length.ToString(), info.Length.ToString());
}
}
}
答案 0 :(得分:2)
GZipStream
不是ZIP文件;它的直接流压缩。
它没有文件或名字的概念;它只是压缩字节。
您正在寻找ZipArchive
课程。