본문 바로가기
카테고리 없음

vb 폴더 파일복사

by 팁텍북 2024. 7. 5.

Sub CopyFolderAndFiles()
    Dim srcFolder As String
    Dim destFolder As String
    Dim fso As Object
    Dim folder As Object
    Dim file As Object

    ' 소스 폴더와 대상 폴더 설정
    srcFolder = "C:\abc\"
    destFolder = "C:\abb\"

    ' FileSystemObject 생성
    Set fso = CreateObject("Scripting.FileSystemObject")

    ' 대상 폴더 생성
    If Not fso.FolderExists(destFolder) Then
        fso.CreateFolder (destFolder)
    End If

    ' 소스 폴더 내 모든 폴더와 파일 복사
    Set folder = fso.GetFolder(srcFolder)
    CopyFolderRecursive folder, destFolder, fso
End Sub

Sub CopyFolderRecursive(ByVal srcFolder As Object, ByVal destFolder As String, ByVal fso As Object)
    Dim subFolder As Object
    Dim file As Object

    ' 폴더 복사
    fso.CopyFolder srcFolder.Path, destFolder, True

    ' 폴더 내 파일 복사
    For Each file In srcFolder.Files
        On Error Resume Next
        fso.CopyFile file.Path, destFolder & "\" & file.Name, True
        If Err.Number <> 0 Then
            MsgBox "Error copying file: " & file.Name
            Err.Clear
        End If
    Next file

    ' 하위 폴더 재귀적으로 복사
    For Each subFolder In srcFolder.SubFolders
        CopyFolderRecursive subFolder, destFolder & "\" & subFolder.Name, fso
    Next subFolder
End Sub

댓글