Удалить папку с C # - PullRequest
       9

Удалить папку с C #

1 голос
/ 18 ноября 2010

Я новичок в C # и сделаю простой инструмент, в котором есть кнопка для удаления всех папок в документах и ​​настройках, но не папок администратора.

Может кто-нибудь сказать мне, как я могу это сделать?

Ответы [ 3 ]

2 голосов
/ 18 ноября 2010

Вы можете использовать DirectoryInfo

System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo("your path");
if (dir.Exists)
     dir.Delete(true);
0 голосов
/ 18 ноября 2010

Здесь много споров, и ответы, предоставленные до сих пор, будут технически работать.Но давайте попробуем другой подход ... Почему вы хотите это сделать?Как вы уже могли догадаться по ответам, это, вероятно, не очень хорошая идея.Так что, может быть, с некоторой предысторией о необходимости решения этой программы, мы можем, возможно, дать более полезные ответы?

Редактировать: То есть вы планируете пройтись по каждому ПК с USB-накопителем и массово удалить?По-прежнему не похоже на хороший подход.Некоторый быстрый поиск в Google только что обнаружил этот , который может работать для вас.Лучшая часть, это работает удаленно.Так что это уберет часть вашей задачи «ходить к каждому ПК».

0 голосов
/ 18 ноября 2010

Вы можете использовать System.IO.DirectoryInfo, а затем вызвать метод Delete(true) для рекурсивного удаления всех папок и файлов в указанной папке.

Информация каталога MSDN

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

Редактировать в ответ на некоторые различныекомментарии

Вы можете сделать некоторые итерации по DirectorySecurity и FileSecurity (я думаю, что это файл), чтобы выяснить группу владельцев для каталога или файла, и оттуда определить,это админ.

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