참고: 이 항목에 설명된 함수, 메서드, 개체 또는 속성은 Microsoft Jet Expression Service가 샌드박스 모드에서 실행 중이면 사용할 수 없으므로 안전하지 않은 식이 평가되지 않습니다. 샌드박스 모드에 대한 자세한 내용은 도움말에서 "샌드박스 모드"를 검색하세요.
지정된 패턴 또는 파일 특성 또는 드라이브의 볼륨 레이블과 일치하는 파일, 디렉터리 또는 폴더의 이름을 나타내는 String 을 반환합니다.
구문
Dir[(pathname [, attributes] )]
Dir 함수 구문에는 다음과 같은 인수가 사용됩니다.
인수 |
설명 |
경로 |
선택 요소입니다. 파일 이름을 지정하는 문자열 식은 디렉터리 또는 폴더 및 드라이브를 포함할 수 있습니다. 경로 이름을 찾을 수 없는 경우 길이가 0인 문자열("")이 반환됩니다. |
특성 |
선택 요소입니다. 상수 또는 숫자 식. 생략하면 경로 이름과 일치하지만 특성이 없는 파일을 반환합니다. |
설정
인수 설정의 특성 은 다음과 같습니다.
상수 |
값 |
설명 |
vbNormal |
0 |
(기본값) 특성이 없는 파일을 지정합니다. |
vbReadOnly |
1 |
특성이 없는 파일 외에 읽기 전용 파일을 지정합니다. |
vbHidden |
2 |
특성이 없는 파일 외에 숨겨진 파일을 지정합니다. |
VbSystem |
4 |
특성이 없는 파일 외에 시스템 파일을 지정합니다. Macintosh에서는 사용할 수 없습니다. |
vbVolume |
8 |
볼륨 레이블을 지정합니다. 다른 특성이 지정된 경우 vbVolume 은 무시됩니다. Macintosh에서는 사용할 수 없습니다. |
vbDirectory |
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 함수를 처음 호출할 때 경로 이름을 지정해야 합니다. 그렇지 않으면 오류가 발생합니다. 파일 특성도 지정하는 경우 pathname을 포함해야 합니다.
Dir은 pathname 과 일치하는 첫 번째 파일 이름을 반환합니다. pathname과 일치하는 추가 파일 이름을 얻으려면 인수 없이 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