Dir 함수

적용 대상
Microsoft 365용 Access Access 2024 Access 2021 Access 2019 Access 2016

참고

Microsoft Jet Expression Service가 샌드박스 모드에서 실행되는 경우 이 항목에 설명된 함수, 메서드, 개체 또는 속성을 사용할 수 없으므로 잠재적으로 안전하지 않은 식을 평가할 수 없습니다. 샌드박스 모드에 대한 자세한 내용은 도움말에서 "샌드박스 모드"를 검색하세요.

지정된 패턴이나 파일 특성과 일치하는 파일, 디렉터리 또는 폴더의 이름이나 드라이브의 볼륨 레이블을 나타내는 문자열 을 반환합니다.

구문

Dir[(pathname [, attributes] )]

Dir 함수 구문에는 다음과 같은 인수가 있습니다.

인수 설명
경로 이름 선택 요소입니다. 파일 이름을 지정하는 문자열 식입니다. 디렉터리나 폴더, 드라이브 등이 포함될 수 있습니다. 경로 이름을 찾을 수 없는 경우 길이가 0인 문자열("")이 반환됩니다.
특성 선택 요소입니다. 상수 또는 숫자 식이며 그 합계는 파일 특성을 지정합니다. 생략하면 경로 이름 과 일치하지만 특성이 없는 파일을 반환합니다.

    

설정

특성인수 설정은 다음과 같습니다.

상수 Value 설명
vbNormal 0 (기본값) 특성이 없는 파일을 지정합니다.
vbReadOnly 1 특성이 없는 파일 외에도 읽기 전용 파일을 지정합니다.
vbHidden 2 특성이 없는 파일뿐만 아니라 숨김 파일도 지정합니다.
VbSystem 4 특성이 없는 파일 외에도 시스템 파일을 지정합니다. Macintosh에서는 사용할 수 없습니다.
vbVolume 8 볼륨 레이블을 지정합니다. 다른 특성이 지정되면 VBVolume 이 무시됩니다. Macintosh에서는 사용할 수 없습니다.
vb디렉터리 16 특성이 없는 파일 외에도 디렉터리 또는 폴더를 지정합니다.
vbAlias 64 지정된 파일 이름이 별칭입니다. Macintosh에서만 사용할 수 있습니다.

    

참고

이러한 상수는 VBA(Visual Basic for Applications)에서 지정되며 코드의 어디에서나 실제 값 대신 사용할 수 있습니다.

주의

Microsoft Windows에서 Dir는 여러 문자() 및 단일 문자(*?) 와일드카드를 사용하여 여러 파일을 지정할 수 있도록 지원합니다. Macintosh에서 이러한 문자는 유효한 파일 이름 문자로 처리되며 여러 파일을 지정하기 위한 와일드카드로 사용할 수 없습니다.

Macintosh에서는 와일드카드를 지원하지 않으므로 파일 형식을 사용하여 파일 그룹을 식별합니다. MacID 함수를 사용하여 파일 이름을 사용하는 대신 파일 형식을 지정할 수 있습니다. 예를 들어 다음 문은 현재 폴더에 있는 첫 번째 TEXT 파일의 이름을 반환합니다.

Dir("SomePath", MacID("TEXT"))

폴더의 모든 파일을 반복하려면 빈 문자열을 지정합니다.

Dir("")

Windows에서 Dir과 함께 MacID 함수를 사용하는 경우 오류가 발생합니다.

256보다 큰 모든 특성 값은 MacID 값으로 간주됩니다.

Dir 함수를 처음 호출할 때 경로 이름을 지정해야 하며, 그렇지 않으면 오류가 발생합니다. 파일 특성도 지정하는 경우 경로 이름을 포함해야 합니다.

Dir은경로 이름과 일치하는 첫 번째 파일 이름을 반환합니다. 경로 이름과 일치하는 추가 파일 이름을 가져오려면 인수 없이 Dir을 다시 호출합니다. 일치하는 파일 이름이 더 이상 없으면 Dir 은 길이가 0인 문자열("")을 반환합니다. 길이가 0인 문자열이 반환되면 후속 호출에서 경로 이름을 지정해야 합니다. 그렇지 않으면 오류가 발생합니다. 현재 경로 이름과 일치하는 파일 이름을 모두 검색하지 않고 새 경로 이름으로 변경할 수 있습니다. 그러나 Dir 함수를 재귀적으로 호출할 수는 없습니다. vbDirectory 특성을 사용하여 Dir을 호출해도 하위 디렉터리가 연속적으로 반환되지는 않습니다.

파일 이름은 특정 순서 없이 검색되므로 반환된 파일 이름을 배열에 저장한 다음 배열을 정렬할 수 있습니다.

예제

참고

VBA(Visual Basic for Applications) 모듈에서 이 함수를 사용하는 경우를 예로 들어 보겠습니다. VBA 사용에 대해 자세히 알아보려면 검색 옆의 드롭다운 목록에서 개발자 참고를 선택하고 검색 상자에 검색어를 하나 이상 입력하세요.

이 예제에서는 Dir 함수를 사용하여 특정 파일과 디렉터리가 있는지 검사합니다. Macintosh에서 "HD:"는 기본 드라이브 이름이며 경로 이름의 일부는 백슬래시 대신 콜론으로 구분됩니다. 또한 Windows 와일드카드 문자는 Macintosh에서 유효한 파일 이름 문자로 처리됩니다. 그러나 MacID 함수를 사용하여 파일 그룹을 지정할 수 있습니다.

Dim MyFile, MyPath, MyName
' Returns "WIN.INI" (on Microsoft Windows) if it exists.
MyFile = Dir("C:\WINDOWS\WIN.INI")    
' Returns filename with specified extension. If more than one *.ini
' file exists, the first file found is returned.
MyFile = Dir("C:\WINDOWS\*.INI")
' Call Dir again without arguments to return the next *.INI file in the 
' same directory.
MyFile = Dir
' Return first *.TXT file with a set hidden attribute.
MyFile = Dir("*.TXT", vbHidden)
' Display the names in C:\ that represent directories.
MyPath = "c:\"    ' Set the path.
MyName = Dir(MyPath, vbDirectory)    ' Retrieve the first entry.
Do While MyName <> ""    ' Start the loop.
    ' Ignore the current directory and the encompassing directory.
    If MyName <> "." And MyName <> ".." Then
        ' Use bitwise comparison to make sure MyName is a directory.
        If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then
            Debug.Print MyName    ' Display entry only if it
        End If    ' it represents a directory.
    End If
    MyName = Dir    ' Get next entry.
Loop