VBA FileSystemObject(MoveFile)를 사용하여 파일 이동하기
In this Article
이 튜토리얼에서는 FileSystemObject의 MoveFile 메서드를 사용하는 방법을 보여 줍니다.
VBA FileSystemObject로 파일 이동하기
MoveFile 메서드는 하나 이상의 파일을 한 위치에서 다른 위치로 이동합니다.
VBA 참조 설정하기
먼저 FileSystemObject를 사용할 때 VB 스크립트 런타임 라이브러리에 대한 참조를 설정해야 할 수 있습니다. Visual Basic Editor(ALT + F11)를 열고 드롭다운 메뉴에서 도구 > 참조를 선택한 후 ‘Microsoft Scripting Runtime’의 체크박스를 선택합니다.
FileSystemObject
다음으로, FileSystemObject를 생성해야 합니다:
Dim FSO As New FileSystemObject
Set FSO = CreateObject("Scripting.FileSystemObject")
이제 MoveFile을 포함한다른 FileSystemObject 메서드에 액세스할 수 있습니다.
파일 한개 이동하기
단일 파일을 이동하려면 FSO.MoveFile( 원본, 대상 )의 간단한 구문을 사용할 수 있습니다.
FSO.MoveFile "C:\Src\TestFile.txt", "C:\Dst\ModTestFile.txt"
위에서 언급했듯이 먼저 파일시스템 오브젝트를 생성해야 합니다:
Sub FSOMoveFile()
Dim FSO As New FileSystemObject
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.MoveFile "C:\Src\TestFile.txt", "C:\Dst\ModTestFile.txt"
End Sub
여러 파일 이동하기
파일 이름의 일부가 같은 여러 파일을 이동할 수 있습니다:
FSO.MoveFile "C:\Src\TestFile*.txt", "C:\Dst\"
또는 확장자가 같은 여러 파일을 이동할 수 있습니다:
FSO.MoveFile "C:\Src\ *.xlsx", "C:\Dst\"
또는 단순히 폴더의 모든 파일을 이동할 수도 있습니다:
FSO.MoveFile "C:\Src\*", "C:\Dst\"
여기서는 * 와일드카드 문자를 사용했습니다.
와일드카드 문자를 사용하는 대신 For Each 반복문을 사용하여 폴더의 모든 파일을 이동할 수도 있습니다.
Sub FSOMoveAllFiles ()
Dim FSO As New FileSystemObject
Dim FromPath As String
Dim ToPath As String
Dim FileInFromFolder As Object
FromPath = "C:\Src\"
ToPath = "C:\Dst\"
Set FSO = CreateObject("Scripting.FileSystemObject")
For Each FileInFromFolder In FSO.GetFolder(FromPath).Files
FileInFromFolder.Move ToPath
Next FileInFromFolder
End Sub
새 폴더로 파일 이동하기
파일을 새로 만든 폴더로 옮길 수도 있습니다. 이렇게 하려면 다음 명령을 추가하세요.
MkDir "C:\Dst\"
명령을 추가한 후 대상 경로로 선언합니다.
Sub FSOMoveAllFiles ()
Dim FSO As New FileSystemObject
Dim FromPath As String
Dim ToPath As String
Dim FileInFromFolder As Object
FromPath = "C:\Src\"
MkDir "C:\Dst\"
ToPath = "C:\Dst\"
Set FSO = CreateObject("Scripting.FileSystemObject")
For Each FileInFromFolder In FSO.GetFolder(FromPath).Files
FileInFromFolder.Move ToPath
Next FileInFromFolder
End Sub
폴더 이동하기
MoveFolder 메서드를 사용하여 폴더를 이동할 수 있습니다.
Sub FSOMoveFolder()
Dim FSO As New FileSystemObject
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.MoveFolder "C:\OldFolder", "C:\Dst\NewFolder"
End Sub