C# ImapX Сохранить XML (недопустимый из-за специального символа в конце) вложение

Я писал программу на C# для извлечения XML-вложений из электронных писем и сохранения их на диск для дальнейшего процесса.

if (message.Attachments != null && message.Attachments.Any())
{
    foreach (var attachment in message.Attachments)
    {
        attachment.Download();
        var fileName = String.Format("{0}-{2}{1}", Path.GetFileNameWithoutExtension(attachment.FileName), Path.GetExtension(attachment.FileName), Guid.NewGuid());
        attachment.Save(attachmentsPath, fileName);
        string contents = File.ReadAllText(attachmentsPath + "\\" + fileName);
        MessageBox.Show(String.Format("Attachment saved: {0}", fileName));
    }
}

Некоторые из XML являются недопустимыми, потому что они заканчиваются символом SUB (ASCII 26) и в этом месте появляется ошибка C#:

attachment.Save(attachmentsPath, fileName);

Произошло необработанное исключение типа "System.FormatException" в mscorlib.dll. Входные данные не являются допустимой строкой Base-64, так как содержат не базовый 64-символ, более двух символов заполнения или недопустимый символ среди символов заполнения.

Как я могу удалить XML-вложения из этого символа перед сохранением XML на диск или заставить его игнорировать этот специальный символ?

0 ответов

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