Я пишу часть программного обеспечения, которая поддерживает файлы в репозитории Git.
Один из написанных мной исполняемых файлов имеет одну простую цель: удалить все, что связано с программным обеспечением. Он предоставляется пользователю в отдельной, совершенно не связанной папке Windows.
Одна из папок, которую необходимо удалить, содержит репозиторий Git, то есть содержит скрытую папку. git
Теперь вот проблема, которая у меня возникла. Когда я на P C сам смотрю на файловую систему, я могу найти эту папку, щелкнуть по ней, удалить ее .... и она исчезла. Не проблема.
Поэтому я пытаюсь сделать то же самое в моей сборке, вызывая System.IO.Directory.Delete для этой папки.
Вот что я Я нахожу:
- Все удаляется из папки, но сама папка все еще там
- Когда я пытаюсь ТО, затем вручную удалить папку из Windows Explorer, он дает мне некоторые Сообщение о несанкционированном доступе. Я не могу удалить его.
- Единственный способ на самом деле избавиться от него - это попробовать переименовать папку в Windows Explorer, после чего я снова получаю сообщение о несанкционированном доступе, но вы не узнаете это .... папка исчезает.
Что дает!?!? Почему System.IO.Directory.Delete НЕ делает то же самое, что и я, проходя через Windows Explorer и удаляя папку вручную?
Я пробовал несколько вещей. Например, я попытался получить все файлы в каталоге и установить для всех их атрибутов значение «Нормально», а также через все папки и установить для их атрибутов каталог и не скрыть. Все еще нет радости. Я даже пытался использовать Process.Start для запуска папки RMDIR / S / Q - которая отлично работает из файла .bat - но происходит то же самое.
У меня есть Tortoise Git и все его зависимости, установленные на случай, если что-то связано с чем-то .... и на папке есть зеленая галочка, указывающая, что ее содержимое обновлено.
Итак, мой вопрос: Можно ли как-нибудь успешно удалить папку, содержащую репозиторий Git через VB. NET?