0

私は持っている:

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

ファイル名は、たとえば data.txt です。圧縮はうまくいきますが、圧縮ファイルの中を見ると、「data」という名前のファイルがあります。「txt」拡張子はどこにありますか。ファイル名は「data.txt」のままである必要があります。

私が行方不明または間違っていることは何ですか?

よろしくカジク

4

2 に答える 2

0

Path.GetFileNameWithoutExtensionを使用してから、gz拡張子を追加することをお勧めします。

于 2012-04-27T18:49:51.763 に答える
0

. GZipStream_ _ _ GZipStream_記録。

ただし、すべてのファイルの内容はアーカイブ内に正しく保持されます。7zip を使用して新しいファイル (デフォルトでは、 などのトークン名が付けられます) にそれらを抽出し、dataファイルの名前を元に戻すと、元のファイルと同じファイルが作成されます。

于 2012-04-27T21:12:52.180 に答える