Я сжимаю CSV-файл, используя GZIPStream и MemoryStream, и замечаю что-то странное с файлом результата. Похоже, что CSV не распознается должным образом. Это показывает, когда файл прикреплен к электронной почте, но отлично работает при сохранении на рабочем столе Windows.Правильно Сжатие CSV с использованием потока потоков и памяти GZIP
Вот текущий фрагмент кода обработки GZIP часть:
GZipStream gStream = null;
MemoryStream mStream = null;
MemoryStream mStream2 = null;
try
{
if (attachment.Length > 0)
{
mStream = new MemoryStream();
gStream = new GZipStream(mStream, CompressionMode.Compress);
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(attachment.ToString());
gStream.Write(bytes, 0, bytes.Length);
gStream.Close();
mStream2 = new MemoryStream(mStream.ToArray());
Attachment emailAttachement = new Attachment(mStream2, "myGzip.csv.gz", "application/x-Gzip");
mailMessage.Attachments.Add(emailAttachement);
}
}
Что показывает? Что случилось неожиданно? Как выглядит код? *что-нибудь*? И что такое файл rsult [sic], если вы используете поток памяти? –
Btw, если бы мне пришлось угадать слепой: поток gzip не был закрыт до того, как вы вызвали ToArray() в потоке памяти –
. Я включил этот код. Мы замечаем, что при открытии файла GZIP (при подключении к электронной почте) сжатый файл не является CSV-файлом (каким-то образом). – GeorgeU