|
Модератор
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
|
|||||||||||
Ошибка "Файл занят другим процессом"17.07.2018, 17:18. Показов 2525. Ответов 17
Метки нет (Все метки)
Написанная программа отправляет некоторые файлы по почте (smtp), после чего эти же файлы переименовывает. Все работает до процесса переименования. Все объекты, которые можно почистил (в т.ч. Dispose()), но наверняка не все, т.к. возникает ошибка "Файл занят другим процессом". Работаю недавно в VisualStudio, не могу понять как отследить объект, который не дает переименовать файл. В гугле не забанен, но ответа не нашел.
Ну и, как полагается код, хотя мой вопрос больше из области понимания дебага.
0
|
|||||||||||
| 17.07.2018, 17:18 | |
|
Ответы с готовыми решениями:
17
|
|
29 / 31 / 27
Регистрация: 15.11.2017
Сообщений: 121
|
|
| 17.07.2018, 20:02 | |
|
1
|
|
|
TheGreatCornholio
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
|
|||||||
| 17.07.2018, 21:18 | |||||||
|
В том месте у Вас вообще что угодно может происходить. Попробуйте добавить перед message.Dispose();
1
|
|||||||
|
Модератор
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
|
|||||||
| 17.07.2018, 21:30 [ТС] | |||||||
|
Могу ошибаться, но постарался не писать лишний код, дабы не запутать. И так много.
0
|
|||||||
|
TheGreatCornholio
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
|
||
| 17.07.2018, 21:40 | ||
|
Код выглядит запутанным, в местах, которые Вы не осветили, по прежнему может происходить что угодно. Сделайте отдельное короткое консольное приложение которого будет выполнять только отправку и дальнейшее переименовывание файла (с простыми body и subject разумеется ) и скиньте сюда, если не лень конечно. Пробовали добавить код, который я выше написал?
0
|
||
|
Модератор
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
|
||||||
| 17.07.2018, 21:44 [ТС] | ||||||
0
|
||||||
|
TheGreatCornholio
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
|
||
| 17.07.2018, 21:57 | ||
Вы уверены что этот метод не лочит файлы? У Вас код в каждом куске по разному выглядит, по этим кускам невозможно понять однозначно как на самом деле выглядит весь код. Что Вам мешает опубликовать это все целостно? Поверьте, эти исходники никому не нужны...
1
|
||
|
Модератор
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
|
|||||||
| 17.07.2018, 22:05 [ТС] | |||||||
|
Не по теме:
В данном случае по невнимательности код не добавил
0
|
|||||||
|
TheGreatCornholio
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
|
|
| 17.07.2018, 22:17 | |
|
Вот тут то конкретная мясорубка и полно утечек памяти, Dispose'ить нужно чуть менее чем все...
Причем порядок важен (в тч что-то после отправки, что-то до нее). Стримы, имаджи, все PDF объекты наверняка... На рефакторинг всей этой жести и так достаточно времени уйдет (проще переписать), а, в моем случае, не имея под рукой всего решения, сами понимаете... Попробуйте Удачи
1
|
|
|
Модератор
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
|
|
| 18.07.2018, 00:12 [ТС] | |
|
Woldemar89, а нет способа узнать какой объект/процесс/что-то еще "держит" файл? Если есть возможность посмотреть 100500 переменных с их значением, то где искать это?
Добавлено через 1 минуту Во флеше (FlashDevelop) в случае ошибки можно пройтись по всему коду от ошибки до исходной строки, ее вызвавшей. В VS или не там смотрю, или этого нет - очень не хватает.
0
|
|
|
TheGreatCornholio
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
|
|
| 18.07.2018, 10:41 | |
|
Код под C#.NET - управляемый код, реализация IDisposable предназначена для высвобождения ресурсов неуправляемого кода
(дескрипторы ОС, память выделенная не в управляемом пространстве итд) Отладить неуправляемый код в данном случае невозможно. Вам остается только найти все IDisposable объекты из используемых, написать грамотный код для работы с ними, ну а потом уже можно попробовать найти все объекты !IsDisposed в момент ошибки. Причины, которые не позволяют нормально дебажить в данном случае, это работа с неуправляемыми ресурсами и заранее, Вы уж простите, обфусцированный код
1
|
|
|
20 / 20 / 6
Регистрация: 28.02.2011
Сообщений: 535
|
|
| 18.07.2018, 15:59 | |
|
TanaTiX, разобрался?
Ради интереса я при ошибки проверил бы а кто реально лочит файл. (Программа lockhunter)
1
|
|
|
Модератор
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
|
|
| 19.07.2018, 13:14 [ТС] | |
|
fufel, был на смене, еще не смотрел. У меня есть для таких случаев unlocker. Но он в данном случае не подходит, т.к. мне определить нужно не программу/процесс, а объект в программе.
Woldemar89, я в c# на уровне нуба, поэтому вполне вероятно, что код обфусцирован, так что мои обиды - их нет, нет на то оснований, вам не за что извиняться. Попробую немного изменить логику программы, посмотрим что получится. Хотя не думаю, что относительно красоты и структуры кода что-то принципиально поменяется. Подобные вещи не так быстро происходят.
0
|
|
|
20 / 20 / 6
Регистрация: 28.02.2011
Сообщений: 535
|
|
| 19.07.2018, 16:05 | |
|
TanaTiX, а что у тебя за код в renameFiles()?
Добавлено через 7 минут И я также не могу найти то место как ты цепляеш данный файл к письму. И также как ты сохряняеш файл на диск чтобы потом его переименовать?
0
|
|
|
Модератор
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
|
||
| 20.07.2018, 21:17 [ТС] | ||
|
Собственно изменил структуру программы - работает. Что именно было причиной сказать не могу - мой навык в c# плох. Наверное в следующей программе было бы все иначе, но сейчас смысла переделывать нет, видимых ошибок не наблюдаю. Всем спасибо.
0
|
||
|
20 / 20 / 6
Регистрация: 28.02.2011
Сообщений: 535
|
||
| 23.07.2018, 12:09 | ||
|
Иди это один файл который вечно переименовывается?
0
|
||
|
Модератор
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
|
|
| 24.07.2018, 12:09 [ТС] | |
|
fufel, есть программа, которая помогает при съеме и выдаче заключения ЭКГ, при этом формируется несколько файлов. Их нужно переработать нужным образом, переименовать и отправить на указанный почтовый адрес.
0
|
|
|
20 / 20 / 6
Регистрация: 28.02.2011
Сообщений: 535
|
|
| 27.07.2018, 12:50 | |
|
TanaTiX, Спасибо.
0
|
|
| 27.07.2018, 12:50 | |
|
Помогаю со студенческими работами здесь
18
Файл занят другим процессом Файл занят используется другим процессом при попытке его удаления процесс не может получить доступ к файлу, т.к. этот файл занят другим процессом Как прочитать лог-файл, если в это время он занят другим процессом Исключения System.IO, занят другим процессом Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет
значение производной при заданном х
Логарифм записывается как: (x-2)log(x^2+2) -. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|