본문 바로가기
Microsoft Scripting Runtime

Folders 컬렉션

2023. 8. 10.

이 글은 도움말을 번역한 글입니다.

Folders 컬렉션

Folder 개체 안에 있는 모든 Folder 개체의 컬렉션입니다.

 

비고

 

아래 코드에서는 Folders 컬렉션을 가져와서 For Each...Next 문을 사용하여 그 컬렉션을 반복 실행하는 방법을 보여줍니다.

 

Sub ShowFolderList(folderSpec)
    Dim fs, f, f1, fc, s
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set f = fs.GetFolder(folderSpec)
    Set fc = f.SubFolders
    For Each f1 In fc
        s = s & f1.Name
        s = s & vbCrLf
    Next
    MsgBox s
End Sub

Sub CallShowFolderList()
    Dim folderSpec As String
    
    folderSpec = "D:\"
    
       ShowFolderList folderSpec
End Sub

속성

Count Property

해당 폴더 내의 직접적으로 포함된 하위 폴더의 수를 나타내는 읽기 전용 속성입니다.

 

아래 코드는 주어진 폴더 경로의 하위 폴더 개수를 계산하여 메시지 박스로 출력합니다.

Function GetSubfolderCount(folderPath As String) As Integer
    Dim objFSO As Object
    Dim objFolder As Object
    
    ' FileSystemObject 생성
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    
    ' 특정 폴더 경로 지정
    Set objFolder = objFSO.GetFolder(folderPath)
    
    ' 하위 폴더 개수 가져오기
    GetSubfolderCount = objFolder.SubFolders.Count
    
    ' 개체 해제
    Set objFolder = Nothing
    Set objFSO = Nothing
End Function

Sub CountSubfolders()
    Dim folderPath As String
    Dim subfolderCount As Integer
    
    ' 폴더 경로 지정
    folderPath = "D:\"
    
    ' 하위 폴더 개수 가져오기
    subfolderCount = GetSubfolderCount(folderPath)
    
    ' 하위 폴더 개수 출력
    MsgBox "하위 폴더 개수: " & subfolderCount
End Sub

Item Property

FileSystemObject(FSO)의 Folders 컬렉션에서 특정 폴더를 가져오는 읽기 전용 속성입니다.

 

아래 코드는 특정 폴더의 경로를 찾아서 메시지 박스로 출력합니다.

Sub GetSpecificFolder()
    Dim fso As Object
    Dim foldersCollection As Object
    Dim targetFolder As Object
    
    ' FileSystemObject 생성
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    ' 특정 폴더의 컬렉션 가져오기
    Set foldersCollection = fso.GetFolder("D:\").SubFolders
    
    ' Key 값을 사용하여 특정 폴더 가져오기
    Set targetFolder = foldersCollection.Item("download")
    
    ' 특정 폴더 경로 출력
    MsgBox "특정 폴더 경로: " & targetFolder.Path
    
    ' 개체 해제
    Set fso = Nothing
End Sub

메서드

Add method

Folders 컬렉션에 새 폴더를 추가합니다.

 

object.Add(folderName)

 

object : 필수적인 요소. 항상 Folders 컬렉션의 이름입니다.

folderName : 필수적인 요소. 추가할 새 Folder의 이름입니다.

 

비고

아래 예제는 새 폴더를 추가하기 위한 Add 메서드 사용법을 보여줍니다.

Sub AddNewFolder(path, folderName)
    Dim fso, f, fc, nf
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f = fso.GetFolder(path)
    Set fc = f.SubFolders
    If folderName <> "" Then
        Set nf = fc.Add(folderName)
    Else
        Set nf = fc.Add("New Folder")
    End If
End Sub
Sub CallAddNewFolder()
    Dim path As String
    Dim folderName As String

    path = "D:\"
    folderName = "MyNewFolder"

    AddNewFolder path, folderName
End Sub

folderName이 이미 존재하면 오류가 발생합니다.

도움말 출처

 

Folders collection

Office VBA reference topic

learn.microsoft.com

'Microsoft Scripting Runtime' 카테고리의 다른 글

Files 컬렉션  (0) 2023.08.13
Folder 개체  (0) 2023.08.10
Drive 개체  (0) 2023.08.10
Drives 컬렉션  (0) 2023.08.09
FileSystemObject 개체  (0) 2023.07.30