Удалить папки и содержащие файлы - PullRequest
16 голосов
/ 11 февраля 2010

У меня очень быстрый вопрос. Моя программа фактически загружает zip-файл, а затем извлекает его на рабочий стол. Но для этого мне нужна функция удаления, которая заключается в удалении нескольких папок и файлов. Как я могу сделать это в vb.net?

Ответы [ 4 ]

36 голосов
/ 11 февраля 2010

Если все ваши папки содержатся в одной папке, это должно быть довольно просто.

Dim path As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "\YOURPATH"
System.IO.Directory.Delete(path, True)

Это удалит ваш корневой каталог, а также все каталоги и файлы под ним. Вы можете просто вызвать это несколько раз, если ваши файлы и каталоги не все находятся в одном корневом каталоге, как, например, "YOURPATH" Это избавит вас от необходимости удалять каждый файл по отдельности.

3 голосов
/ 11 февраля 2010

Модуль ввода-вывода .NET имеет две команды, которые должны позволить вам выполнить свою задачу:

System.IO.Directory.GetDirectories("C:\\Program Files\\Your Directory\\*.*");
System.IO.Directory.GetFiles("C:\\Program Files\\Your Directory\\*.*");

Я бы написал метод, который принимает имя каталога и использует подпрограмму «GetFiles», чтобы получить все файлы и удалить их, используя System.IO.File.Delete (путь) в цикле foreach. Затем выполните цикл foreach для результата команды GetDirectories (), вызывающей функцию рекурсивно.

Обновление: Стив Даннер отмечает, что в пространстве имен System.IO.Directory есть метод Delete, поэтому вам не нужно проходить циклы, о которых я здесь говорю. Его ответ правильный и должен быть поставлен на голосование. На данный момент, мое, скорее, любопытство (хотя спасибо человеку, который подал мне голос; 0).

0 голосов
/ 11 сентября 2016

Вы ищете DirectoryInfo, используйте его так:

Dim di As New IO.DirectoryInfo(path)
di.Delete(True)
0 голосов
/ 22 июля 2011
Dim path As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "\YOURPATH"
System.IO.Directory.Delete(path, True)
...