2010-02-11 3 views
14

정말 빠른 질문이 있습니다. 내 프로그램은 실제로 zip 파일을 다운로드 한 다음 데스크탑으로 추출합니다. 하지만 기본적으로 여러 폴더를 삭제하고 파일을 포함하는 제거 기능이 필요합니다. vb.net에서 이것을 어떻게 할 수 있습니까?폴더 및 포함 파일 삭제

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

내가 디렉토리의 이름을 사용하고 모든 얻을 수있는 "GetFiles에는"루틴을 사용하는 방법을 작성합니다

답변

35

모든 폴더가 하나의 폴더에 포함되어 있으면 아주 간단합니다.

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

이렇게하면 루트 디렉토리와 그 아래의 모든 디렉토리와 파일이 삭제됩니다. 예제에서 "YOURPATH"와 같은 단일 루트 디렉토리에 파일과 디렉토리가 모두없는 경우이 작업을 여러 번 호출 할 수 있습니다. 이렇게하면 각 파일을 개별적으로 제거하지 않아도됩니다. 귀하가의 DirectoryInfo를 찾고 있습니다

+4

일 - 디렉토리를 삭제하지 데 마십시오, 내가이 삭제 방법에 대한 Directory 개체에서 찾고 생각하지 않았다. 이 대답은 내 것보다 낫다. –

3

닷넷 IO 장치는 트릭을 할 수 있도록해야 두 개의 명령이 있습니다 foreach 루프에서 System.IO.File.Delete (path)를 사용하여 파일을 삭제할 수 있습니다. 그런 다음 함수를 재귀 적으로 호출하는 GetDirectories() 명령의 결과에 대해 foreach 루프를 실행합니다.

업데이트 : Steve Danner는 System.IO.Directory 네임 스페이스에 Delete 메서드가 있음을 지적하므로 여기에서 설명한 루프를 수행 할 필요가 없습니다. 그의 대답은 옳고 표결해야합니다. 광산,이 시점에서 더 많은 호기심입니다 (비록 나를 upvote 0 준 사람에게 고맙지 만).

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

설명을 약간 추가하면 더 맛있는 답변을 만들 수 있습니다. –

-1

는, 다음과 같이 사용 :

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