Удалить файл, когда он используется в другом процессе - PullRequest
1 голос
/ 20 апреля 2011

В DocumentViewerControl в WPF Я хочу удалить файл после закрытия элемента управления в обработчике закрытых событий. Я пытался удалить его, но VS сказал мне, что он используется другим процессом. Как я могу удалить его?

TextBlock tb = (TextBlock)e.TabItem.Header;
int index = Convert.ToInt32(tb.Text.Split(' ')[1]) - 2;
string path = GlobalStaticVariables.store_item_content[index].Split('-')[1];
Process temp = Process.GetCurrentProcess();
temp.Dispose();
System.IO.File.Delete(path);

1 Ответ

4 голосов
/ 20 апреля 2011

Этот вопрос уже задавался много раз, и ответ по-прежнему не меняется: удаление файлов, открытых другими процессами, является плохим и, как результат, затруднительным для выполнения.Обычно лучше выяснить, почему файл заблокирован, и либо исправить поведение приложения, чтобы избежать чрезмерной блокировки файла, либо дождаться, пока приложение выпустит файл.

Чтобы выяснить, кто блокирует файл, вы можете использовать Обрабатывать или версия с графическим интерфейсом - Process Explorer от Microsoft / SysInternals.

См. связанные сообщения для обсуждений по этой теме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...