Amir228
@Amir228

От чего появляеться исключение System.IO.IOException: «The process cannot access the file '37.txt' because it is being used by another process.»?

Вот код:
for (int i = 0; i < 3; i++)
            {
                var filePath = directory2.FullName + @"\" + childDirName
                + @"\" + new Random().Next(10, 100) + ".txt";

                if (File.Exists(filePath) == false)
                {
                    File.Create(filePath);
                    Console.WriteLine(filePath + " file create");
                }
            }
            Console.Read();
            directory2.Delete(true);
            Console.WriteLine("directory2 delete!");

Если кратко код выше создает рандомно названые текстовые файлы. Выскакивает исключение
System.IO.IOException: "The process cannot access the file '37.txt' because it is being used by another process." То есть какой то процесс(ы) используют файл поэтому его удалить нельзя, в скрипте я не обращаюсь к файлам, только создаю и сразу же удаляю. Avast выключил, но ошибка не прошла. Пробовал удалять через цикл каждый файл вместо удаление всей папки, не работает.
  • Вопрос задан
  • 174 просмотра
Решения вопроса 2
Adler_lug
@Adler_lug
File.Create возвращает FileStream, т.е. он и держит файл открытым
Ответ написан
Комментировать
@d-stream
Готовые решения - не подаю, но...
Лентяйский вариант:
using(File.Create(filePath){
    Console.WriteLine(filePath + " file create");
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы