Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 压缩_C#_Compression_Zip - Fatal编程技术网

C# 压缩

C# 压缩,c#,compression,zip,C#,Compression,Zip,我有: 文件名是例如data.txt。压缩工作正常,但当我查看压缩文件时,发现有一个名为“data”的文件。其中是“txt”扩展名。文件名仍应具有名称“data.txt” 我错过了什么或做错了什么 问候 kazik您可能希望使用然后附加gz扩展名。当您使用GZipStream压缩数据时,您提供的是一个字节流,而不是一个文件,GZipStream实例不知道该流是来自网络、内存还是文件,因此无法将文件名嵌入到存档中 但是,所有文件的内容都正确地保留在存档中。您可以使用7zip将它们解压缩到一个新文件

我有:

文件名是例如data.txt。压缩工作正常,但当我查看压缩文件时,发现有一个名为“data”的文件。其中是“txt”扩展名。文件名仍应具有名称“data.txt”

我错过了什么或做错了什么

问候
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);
                }
            }
        }
    }