powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Блокировка файла
3 сообщений из 3, страница 1 из 1
Блокировка файла
    #39874995
SAS2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
//Создание файла и заполнение данными
 string file_ = Path.GetTempPath() + "create_list_user.txt";
 FileStream fs = new FileStream(file_, FileMode.Create);
............................
............................
 streamWriter.Close();
 fs.Close();          

// Отправка письма с вложением
// отправитель - устанавливаем адрес и отображаемое в письме имя
            string user_mail = Environment.UserName + "@test.ru";
            MailAddress from = new MailAddress(user_mail);

            // кому отправляем
            string email_to = "test@test.ru";
            MailAddress to = new MailAddress(email_to);

            // создаем объект сообщения
            System.Net.Mail.MailMessage m = new System.Net.Mail.MailMessage(from, to);

            // тема письма
            m.Subject = "TEST";

            // текст письма
            m.Body = "";

            // вложение
            string email_file = Path.GetTempPath() + "create_list_user.txt";
            m.Attachments.Add(new Attachment(email_file));

            // адрес smtp-сервера и порт, с которого будем отправлять письмо
            SmtpClient smtp = new SmtpClient("mail_2.test.ru");
            smtp.EnableSsl = true;
            smtp.Send(m);



Не закрывая приложения, запускаю снова создание файла и отправку письма
и при попытке выполнить
Код: c#
1.
FileMode.create


появляется
Код: c#
1.
2.
An unhandled exception of type 'System.IO.IOException' occurred in mscorlib.dll
Additional information: Процесс не может получить доступ к файлу "C:\Temp\create_list_user.txt", так как этот файл используется другим процессом.



Выяснил, что ошибка из за (закомментировал строчку)
Код: c#
1.
 m.Attachments.Add(new Attachment(email_file));
...
Рейтинг: 0 / 0
Блокировка файла
    #39875010
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Могу предположить, что Attachement надо диспозить после использования - возможно, что это он оставляет держать файл открытым.
...
Рейтинг: 0 / 0
Блокировка файла
    #39875386
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Диспозить надо не Attachment, а MailMessage - оно само внутри диспозит все Attachment с их открытыми потоками (внутри MimePart). Сто раз ведь уже говорили - всё, что реализует IDisposable, нужно заворачивать в using.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Блокировка файла
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]