Нужна помощь в конвертации Zip с использованием Gstream

Я использую этот код для сжатия файла в zip

     public static void Compress(FileInfo fileToCompress)
    {
        using (FileStream originalFileStream = fileToCompress.OpenRead())
        {
            if ((File.GetAttributes(fileToCompress.FullName) & FileAttributes.Hidden) != FileAttributes.Hidden & fileToCompress.Extension != ".zip")
            {
                using (FileStream compressedFileStream = File.Create(fileToCompress.FullName + "_" + DateTime.Now.ToString("dd_MM_yyyy") + ".zip"))
                {

                    using (GZipStream compressionStream = new GZipStream(compressedFileStream, CompressionMode.Compress))
                    {
                        originalFileStream.CopyTo(compressedFileStream);
                        Console.WriteLine("Compressed {0} from {1} to {2} bytes.",
                            fileToCompress.Name, fileToCompress.Length.ToString(), compressedFileStream.Length.ToString());
                    }
                }
            }
        }
    }

с помощью этого кода я конвертирую файл в zip, например, у меня есть файл с именем myfile.pdf, что он делает, он сохраняет этот файл с myfile.pdf_31_7_2013.zip, но проблема в том, что когда я извлекаю этот zip, он содержит мой файл с расширением myfile.pdf_31_7_2013 файл будет открыт, поскольку его расширение изменено с.pdf на.pdf_31_7_2013

поэтому его расширение изменилось. Я хочу изменить код таким образом, чтобы имя почтового индекса было таким же, как сейчас. но внутри этого моего файла должен быть только myfile.pdf

пожалуйста, помогите мне решить это. заранее спасибо

1 ответ

Решение

Вы должны изменить формат файла так, чтобы:

  • Расширение gz
  • Часть перед расширением подходит для вашего файла, так что когда .gz был удален, это будет разумное имя файла.

Так что вместо преобразования myfile.pdf в myfile.pdf_31_7_2013.zipЯ бы преобразовал это в myfile-20130731.pdf.gz, Когда это извлечение, оно станет myfile-20130731.pdf, Обратите внимание, что с помощью yyyyMMdd чище чем MM_d_yyyy как это сортируемо и однозначно.

Другие вопросы по тегам