Каталоги могут быть удалены только после очистки их содержимого

272
TorbenJ

У меня есть эта действительно раздражающая проблема с удалением каталогов в Windows в течение некоторого времени.
Я - разработчик программного обеспечения, использующего Visual Studio, и у меня обычно есть общий выходной каталог сборки для одного проекта и его подпроектов, если я нахожу это подходящим.
Теперь, если я хочу стереть какие-либо артефакты сборки, я обычно просто удаляю этот каталог или, по крайней мере, пытаюсь.
Часто я не могу удалить выходной каталог напрямую и получаю сообщения об ошибках типа «Вам нужно разрешение от XXX, чтобы удалить этот каталог».
XXX - это обычно учетная запись, в которую я уже вошел, поэтому я не понимаю. Я являюсь локальным администратором машины, и в каталоге выходных данных сборки нет ничего особенного.

Единственное, что я могу сделать, это удалить все внутри выходного каталога, и только тогда я могу удалить выходной каталог сборки верхнего уровня.
Иногда, особенно если у меня есть несколько подкаталогов для нескольких конфигураций, таких как «Release» и «Debug», я получаю одинаковую ошибку и для этих подкаталогов, и мне также необходимо предварительно очистить их содержимое.

Внутри этих каталогов нет явно открытых файлов / приложений или чего-либо, что, как я мог заметить, препятствует удалению файлов.

Я искал в Интернете, но пока ничего не нашел, даже не знаю, что искать.
Что я могу с этим поделать или в чем может быть причина?

Изменить: эта проблема не всегда возникает, бывают дни, когда все работает, но есть дни, когда это не работает или, по крайней мере, часть дня не работает.

1
Ваш стек сборки, вероятно, устанавливает испорченные разрешения, проверьте их вручную, чтобы увидеть, не является ли что-то необычным (например, владение файлом, но не разрешение на его удаление). Обходной путь: попробуйте создать сценарий, который рекурсивно устанавливает разумные разрешения, а затем удаляет папку. simlev 6 лет назад 1
@Simlev спасибо за ваш комментарий. Я должен был упомянуть, что проблема не всегда появляется, это может произойти в течение половины дня, а в другой половине - не происходит. Я просто использую стандартный стек сборки Visual Studio, но я посмотрю на разрешения, если это произойдет снова TorbenJ 6 лет назад 0

0 ответов на вопрос