Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Проблема удаления или перемещения файла.


Автор: Injener 1.9.2007, 16:26
У меня есть XML файл. Я его парсил, а затем мне необходимо удалить или перенести его в другой фолдер.
При попытке удалить или перенести, генерится эксепшон (файл занят другим процессом).
Можно ли как либо обойти это?

Заранее благодарен.

Автор: HalkaR 1.9.2007, 16:54
Код покажешь?
Ты видимо файл после чтения не закрываешь.

Автор: Injener 1.9.2007, 17:16
HalkaR, спасибо за подсказку.

Объект которым я парсил (он не в Framework-e, а свой), почему-то не уничтожается сборщиком мусора, хотя больше нигде не используется, и продолжает держать файл. Но это уже другая проблема. После reader.Dispose(); файл освобождается.

Спасибо еще раз smile 

Автор: archeg 1.9.2007, 21:57
Цитата(Injener @  1.9.2007,  17:16 Найти цитируемый пост)
Объект которым я парсил (он не в Framework-e, а свой), почему-то не уничтожается сборщиком мусора

Он и не должен уничтожатся сборщиком мусора. Сбощик мусора запускается как захочет (есть определенные условия), но не тогда когда у тя появляется без-ссылочный обьект.
А Dispose() освобождает машинный ресурс, но не удаляет обьект из памяти и не запускает сборку мусора
почему все время эти понятия путают??

Dispose() нужно вызывать всегда, если исользуешь класс, который в свою очередь управляет машинным ресурсом. Чтобы класс мог правильно освободить ресурс (кстати Close() - в основном то ж что и Dispose(). Если используешь запись в файл, то запись производится в буфер (если отключено свойство AutoFlush) и файл будет записан полносью и закрыт только при вызове Dispose() или Close())

А еще лучше исользовать блок using {}. С ним меньше ошибок

Автор: Injener 2.9.2007, 13:07
Спасибо за коммент, буду пользоваться smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)