Файл используется каким-то другим процессом при удалении
Всем Привет,
У меня есть веб-приложение на языке C#. Основное использование этого приложения-генерация отчетов. приложение создает временные файлы при создании отчетов. Я хочу удалить 100 лучших файлов из папки Temp. Проблема в том, что я не могу удалить файлы из-за того, что файл используется каким-то другим процессом. пожалуйста, помогите мне
Что я уже пробовал:
я не могу удалить файлы из-за того, что файл используется каким-то другим процессом. пожалуйста, помогите мне
David_Wimbley
Вам нужно опубликовать свой код, не весь, а соответствующие части, чтобы кто-то даже начал давать вам некоторые рекомендации.
Скорее всего, у вас возникла проблема, когда ваше приложение заблокировало ваши файлы и не было удалено должным образом. Учитывая, что я не вижу вашего кода и не имею доступа к вашей машине, это лучшее предположение, которое у меня есть.
riswanzaman
For i As Integer = mcount To mDirectoryInfo.GetFiles().Длина - 1
Dim f As FileInfo = mDirectoryInfo.GetFiles()(i)
Если f.Extension = ".tmp" или f.Extension = ".rpt", то
Файл.Открыть(Ф.Полное Имя, Содержит Filemode.Открыть)
Dim swWriter как новый StreamWriter(f.FullName)
swWriter.WriteLine("бабабаба")
Если f.CreationTime.AddMinutes(5) < DateTime.Ну А Теперь
- Система.GC.Collect();
Системы'.ГК.WaitForPendingFinalizers();
-Файл.Удалить(picturePath);
Системы.ГК.Собирать()
System.GC.WaitForPendingFinalizers()
Файл.Удалить(f.полное имя)
Приставка.WriteLine("Удалено")
Конец, Если
Конец, Если
Следующий
Vincent Maverick Durano
Мы можем посмотреть ваш код? Удаление файла перед удалением должно решить эту проблему.
riswanzaman
For i As Integer = mcount To mDirectoryInfo.GetFiles().Длина - 1
Dim f As FileInfo = mDirectoryInfo.GetFiles()(i)
Если f.Extension = ".tmp" или f.Extension = ".rpt", то
Файл.Открыть(Ф.Полное Имя, Содержит Filemode.Открыть)
Dim swWriter как новый StreamWriter(f.FullName)
swWriter.WriteLine("бабабаба")
Если f.CreationTime.AddMinutes(5) < DateTime.Ну А Теперь
- Система.GC.Collect();
Системы'.ГК.WaitForPendingFinalizers();
-Файл.Удалить(picturePath);
Системы.ГК.Собирать()
System.GC.WaitForPendingFinalizers()
Файл.Удалить(f.полное имя)
Приставка.WriteLine("Удалено")
Конец, Если
Конец, Если
Следующий
Richard Deeming
Зовущий GetFiles()
многократное повторение подобных действий крайне неэффективно и может привести к ошибкам - особенно если вы пытаетесь удалить некоторые файлы в цикле.
Замените его For
петля и ее первая строка с:
For Each f As FileInfo In mDirectoryInfo.GetFiles()