CAFE

나만의 TIP

하위폴더내용까지 전부 지우기

작성자VB쉼터사랑|작성시간03.04.06|조회수3,563 목록 댓글 0
두가지 방법이 있는데
한가지는 재귀프로시져를 써서 하위폴더를 하나씩 찾아 들어가서 해당 폴더의 파일을 지우고 나서 폴더를 지워 나가는 방법이고(RmDir함수는 폴더에 파일이 있으면 폴더를 지울수 없습니다.)

두번째 방법은 FileSystemObject의 DeleteFolder함수를 사용하는 방법입니다.
참조를 해야겠지요 Microsoft Scripting Runtime

Option Explicit
Private Sub FolderDelete(strFolderPath As String) '폴더를 삭제하는 프로시져
Dim strFileName As String
Dim FolderArray() As String
Dim FolderCount As Integer
Dim strFilePath As String
Dim strFileTitle As String
Dim i As Integer
Dim FolderPath As String

FolderPath = strFolderPath

If Right(FolderPath, 1) <> "\" Then
FolderPath = FolderPath + "\"
End If

strFileName = Dir(FolderPath, vbNormal + vbDirectory) '디렉토리 포함 검색
If strFileName = "" Then '비어있으면
RmDir strFolderPath '디렉토리를 삭제
Exit Sub
Else
FolderCount = -1 '초기값 설정
Do
If GetAttr(FolderPath & strFileName) And vbDirectory Then '폴더면
If strFileName <> "." And strFileName <> ".." Then '내용있는 폴더면
FolderCount = FolderCount + 1 '배열 첨자를 더하고
ReDim Preserve FolderArray(FolderCount) As String '배열 재설정
FolderArray(FolderCount) = FolderPath & strFileName '변수에 값저장
End If
Else '파일이면
Kill FolderPath + strFileName '삭제
End If
strFileName = Dir
If strFileName = "" Then Exit Do
Loop

For i = 0 To FolderCount
FolderDelete FolderArray(i) '재귀호출
Next i
RmDir strFolderPath '디렉토리 삭제
End If
End Sub

Private Sub Command1_Click()'첫번째 방법
FolderDelete "삭제할 디렉토리 전체 경로" '함부로 적어 넣지 마십시요
'지우면 다시 살릴수 없습니다.
End Sub

Private Sub Command2_Click()'두번째 방법
Dim Fso As New FileSystemObject

Fso.DeleteFolder "삭제할 디렉토리 전체경로" '함부로 지우면 다시 살릴수 없습니다.

End Sub
다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
맨위로

카페 검색

카페 검색어 입력폼