Удаление папок и содержащих файлы

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

Ответ 1

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

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

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

Ответ 2

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

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).

Ответ 3

Вы ищете DirectoryInfo, используйте его следующим образом:

Dim di As New IO.DirectoryInfo(path)
di.Delete(True)

Ответ 4

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