System.IO.Directory.Delete v Git Репозиторий - Несанкционированный доступ - PullRequest
0 голосов
/ 18 февраля 2020

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

Один из написанных мной исполняемых файлов имеет одну простую цель: удалить все, что связано с программным обеспечением. Он предоставляется пользователю в отдельной, совершенно не связанной папке Windows.

Одна из папок, которую необходимо удалить, содержит репозиторий Git, то есть содержит скрытую папку. git

Теперь вот проблема, которая у меня возникла. Когда я на P C сам смотрю на файловую систему, я могу найти эту папку, щелкнуть по ней, удалить ее .... и она исчезла. Не проблема.

Поэтому я пытаюсь сделать то же самое в моей сборке, вызывая System.IO.Directory.Delete для этой папки.

Вот что я Я нахожу:

  1. Все удаляется из папки, но сама папка все еще там
  2. Когда я пытаюсь ТО, затем вручную удалить папку из Windows Explorer, он дает мне некоторые Сообщение о несанкционированном доступе. Я не могу удалить его.
  3. Единственный способ на самом деле избавиться от него - это попробовать переименовать папку в Windows Explorer, после чего я снова получаю сообщение о несанкционированном доступе, но вы не узнаете это .... папка исчезает.

Что дает!?!? Почему System.IO.Directory.Delete НЕ делает то же самое, что и я, проходя через Windows Explorer и удаляя папку вручную?

Я пробовал несколько вещей. Например, я попытался получить все файлы в каталоге и установить для всех их атрибутов значение «Нормально», а также через все папки и установить для их атрибутов каталог и не скрыть. Все еще нет радости. Я даже пытался использовать Process.Start для запуска папки RMDIR / S / Q - которая отлично работает из файла .bat - но происходит то же самое.

У меня есть Tortoise Git и все его зависимости, установленные на случай, если что-то связано с чем-то .... и на папке есть зеленая галочка, указывающая, что ее содержимое обновлено.

Итак, мой вопрос: Можно ли как-нибудь успешно удалить папку, содержащую репозиторий Git через VB. NET?

1 Ответ

0 голосов
/ 18 февраля 2020

Я наконец дошел до сути этой загадочной тайны.

Виновником является Черепаха Git

Когда я убил процесс TGitCache.exe непосредственно перед удалением папка, все работало отлично.

Go цифра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...