참고
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