2010-02-11 42 views
14

Tôi có một câu hỏi thực sự nhanh chóng. Chương trình của tôi thực sự tải xuống một tệp zip rồi trích xuất nó lên máy tính để bàn của họ. Nhưng tôi cần một tính năng gỡ bỏ cài đặt cho nó, đó là cơ bản xóa nhiều thư mục và chứa các tập tin. Làm thế nào tôi có thể làm điều này trong vb.net?Xóa các thư mục và chứa các tập tin

Trả lời

35

Nếu tất cả các thư mục của bạn được chứa trong một thư mục, nó sẽ khá thẳng về phía trước.

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

Điều đó sẽ xóa thư mục gốc của bạn và tất cả các thư mục và tệp bên dưới thư mục gốc. Bạn chỉ có thể gọi nó nhiều lần nếu các tệp và thư mục của bạn không phải tất cả trong một thư mục gốc duy nhất như "YOURPATH" trong ví dụ. Điều này sẽ giúp bạn không phải xóa từng tệp riêng lẻ.

+4

+1 - Chưa bao giờ xóa một thư mục, tôi không nghĩ đến việc tìm kiếm trong đối tượng thư mục cho một phương pháp Delete. Câu trả lời này tốt hơn tôi. –

3

đơn vị .NET IO có hai lệnh rằng nên cho phép bạn làm các trick:

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

Tôi sẽ viết một phương pháp mà có tên của một thư mục và sử dụng "GetFiles" thường xuyên để nhận được tất cả của các tệp và xóa chúng bằng cách sử dụng System.IO.File.Delete (đường dẫn) trong vòng lặp foreach. Sau đó, chạy một vòng lặp foreach trên kết quả của lệnh GetDirectories() gọi hàm đệ quy.

Cập nhật: Steve Danner chỉ ra rằng không gian tên System.IO.Directory có phương thức Xóa để bạn không cần phải đi qua các vòng mà tôi nói ở đây. Câu trả lời của anh là câu trả lời đúng và nên được bình chọn. Mỏ, tại thời điểm này, là một sự tò mò hơn (mặc dù cảm ơn người đã cho tôi một upvote; 0).

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

thêm một chút mô tả sẽ làm cho câu trả lời của bạn ngon miệng hơn –

-1

bạn đang tìm kiếm DirectoryInfo, sử dụng nó như thế này:

Dim di As New IO.DirectoryInfo(path) 
di.Delete(True) 
Các vấn đề liên quan