Создание Windows-приложений на основе Visual C#


           

Создаем временный файл. FileStream tf


using System; using System.IO; using System.Security.Cryptography; using System.Text;
namespace Mail { /// <summary> /// Содержит методы и информацию о вложениях в письмо. /// </summary> public class AttachDescriptor { string _oldname; string _tmpfile;
internal AttachDescriptor(string name, string dir) { _oldname = name; _tmpfile = dir + Guid.NewGuid(); } /// <summary> /// Декодирование файла. /// </summary> /// <param name="message">Текст сообщения с вложенным файлом.</param> /// <param name="transform">Формат трансформации.</param> internal void DecodeFile(string message, ICryptoTransform transform) { try { // Создаем временный файл. FileStream tf = new FileStream(_tmpfile, FileMode.Create, FileAccess.Write); // Создаем поток трансформации для временного файла. CryptoStream cs = new CryptoStream(tf, transform, CryptoStreamMode.Write);
// Конвертируем строки в массив байтов Encoding enc = Encoding.ASCII; byte [] b = enc.GetBytes(message); // Записываем байты в поток трансформации. cs.Write(b, 0, b.Length); // Закрываем потоки. cs.Close(); tf.Close(); } // Обрабатываем возникшие исключения. catch(System.Exception e) { Console.WriteLine(e.ToString()); throw new ParseException("Невозможно декодировать содержимое файла", e); } } /// <summary> /// Закрываем и удаляем временный файл. /// </summary> internal void Close() { File.Delete(_tmpfile); }
/// <summary> /// Возвращаем файловый поток из файла временного вложения. /// </summary> /// <returns></returns> public FileStream GetFile() { FileStream tf = new FileStream(_tmpfile, FileMode.Open, FileAccess.Read); return tf; }
#region Public properties /// <summary> /// Название. /// </summary> public string Name { get { return _oldname; } } /// <summary> /// Временный файл. /// </summary> public string TempFile { get { return _tmpfile; } } /// <summary> /// Размер. /// </summary> public long Size { get { FileInfo fi = new FileInfo(_tmpfile); return fi.Length; } } #endregion } }
Листинг 3.13.
Закрыть окно
Содержание  Назад  Вперед