У меня есть объект System.Net.Mail.Attachment с некоторыми данными .csv в нем. Мне нужно сохранить содержимое вложения в файле. Я попытался это:Как получить содержимое System.Net.Mail.Attachment
var sb = new StringBuilder();
sb.AppendLine("Accounts,JOB,Usage Count");
sb.AppendLine("One,Two,Three");
sb.AppendLine("One,Two,Three");
sb.AppendLine("One,Two,Three");
var stream = new MemoryStream(Encoding.ASCII.GetBytes(sb.ToString()));
//Add a new attachment to the E-mail message, using the correct MIME type
var attachment = new Attachment(stream, new ContentType("text/csv"))
{
Name = "theAttachment.csv"
};
var sr = new StreamWriter(@"C:\Blah\Look.csv");
sr.WriteLine(attachment.ContentStream.ToString());
sr.Close();
Но файл имеет только следующее: "System.IO.MemoryStream". Не могли бы вы рассказать мне, как я могу получить реальные данные?
Спасибо.
Использовать записи файлов для записи этого потока в файл? –
Вы не можете вызвать 'ToString' в случайном потоке, который обычно просто печатает имя типа. Для копирования потока в другой поток необходимо использовать «CopyTo». – vcsjones
Если он не слишком большой, вы можете просто вызвать 'ContentStream.ReadToEnd()' –