2016-02-11 3 views
-3

У меня есть следующий код:Ошибка при использовании File.Delete освобождения файла

File.Delete(excelFile); 

Я получаю следующее сообщение об ошибке:

Процесс не может получить доступ к файлу «C: \ Temp \ ODF1.xlsx 'потому что он используется другим процессом.

Я не уверен, как выпустить файл, чтобы его можно было удалить. Я попытался следующие, но не получилось:

GC.Collect(); 
    GC.WaitForPendingFinalizers(); 
    File.Delete(excelFile); 
+0

Вы получаете сообщение об ошибке, указанное в строке File.Delete, правильно? – Tim

+0

Независимо от того, что * доступ к нему *, нужно будет его освободить. Добавление кода * после исключения * не остановит исключение. – David

+0

Файл Excel по-прежнему открыт в другой программе, возможно, в Excel. Закройте все экземпляры Excel и снова проверьте код. – Equalsk

ответ

0

Дескриптор файла должен быть освобожден другим процессом. Вы можете использовать такой инструмент, как Process Explorer, чтобы посмотреть, какой процесс держится за этот файл. Сбор мусора не отслеживает файлы, поэтому класс GC не поможет вам здесь.

Смежные вопросы