|
구성 요소 |
설명 |
pathname |
선택. 파일 이름을 지정하는 문자열 식이며, 디렉토리 또는 폴더, 드라이브가 포함될 수 있습니다. Pathname을 찾지 못하면 길이가 0인 문자열("")을 반환합니다. |
Attributes |
선택. 상수 또는 숫자 식이 되며, 그 합은 파일 속성을 지정합니다. 생략되면 pathname과 일치하는 파일을 모두 반환합니다. |
|
설정 attributes 인수는 다음과 같이 설정되어 있습니다.
상수 |
값 |
설명 |
vbNormal vbHidden vbSystem vbVolume VbDirectory |
0 2 4 8 16 |
표준 숨겨짐 시스템 파일 크기 이름표. 이 값이 지정되면 다른 속성은 모두 무시됨. 디렉토리 또는 폴더 |
|
메모 응용 프로그램용 Visual Basic으로 이 상수들을 지정하며 코드에서 실제값 대신에 사용할 수 있습니다.
참고 Dir은 다중 문자(*) 및 단일 문자(?)를 나타내는 대표 문자를 사용하여 다중 파일을 지정할 수 있습니다.
Dir 함수를 호출하면 먼저 pathname을 지정하여야 합니다. 그렇지 않으면 오류가 발생합니다. 파일 속성의 지정도 pathname이 포함되어야 합니다.
Dir은 pathname 과 일치하는 첫번째 파일 이름을 반환합니다. 추가로 pathname과 일치하는 파일 이름을 얻으려면 인수없이 다시 Dir을 호출합니다. 더 이상 일치하는 파일 이름이 없으면 Dir는 길이가 0인 문자열("")을 반환합니다. 길이가 0인 문자열이 반환되면 다시 호출할 때 pathname을 지정해야 합니다. 그렇지 않으면 오류가 발생합니다. 현재 pathname과 일치하는 파일 이름을 모두 불러 오지 않고 새 pathname으로 변경할 수 있습니다. 그러나 순환적으로 Dir 함수를 호출할 수는 없습니다. VbDirectory 속성으로 Dir을 호출하면 하위 디렉토리를 계속적으로 반환하지 않습니다.
팁 특별한 순서 없이 파일 이름을 불러 왔기 때문에 반환된 파일 이름을 배열에 저장한 다음, 그 배열을 정렬할 수 있습니다.
배열 동일한 고유 데이터 형식을 가진, 연속적으로 인덱스된 구성 요소 집합을 의미합니다. 배열의 각 구성 요소는 고유의 식별 인덱스 번호를 가지고 있습니다. 배열의 한 구성 요소를 변화시켜도 다른 구성 요소는 영향을 받지 않습니다. |
|
Dir 함수 예제
이 예제는 Dir 함수를 사용하여 어떤 파일과 디렉토리가 존재하는지 확인합니다.
Dim MyFile, MyPath, MyName ' 만일 MyFile = Dir("C:\WINDOWS\WIN.INI")이 존재하면 "WIN.INI"를 반환합니다.
' 지정된 확장자로 파일 이름을 반환합니다. 둘 이상의 *.ini 파일이 존재하면, 찾은 첫번째 파일을 반환합니다.
MyFile = Dir("C:\WINDOWS\*.INI") ' 같은 디렉토리에서 그 다음 *.INI 파일을 반환할 인수 없이 Dir을 다시 호출합니다.
MyFile = Dir
MyFile = Dir("*.TXT", vbHidden) ' 숨겨진(hidden) 속성을 가진 *.TXT 파일을 먼저 반환합니다.
MyPath = "c:\" ' 경로를 설정합니다. ' 디렉토리를 나타내는 C:\에서 이름을 표시합니다.
MyName = Dir(MyPath, vbDirectory) ' 첫번째 항목을 검색합니다.
Do While MyName <> "" ' 루프(loop)를 시작합니다.
' 현재 디렉토리와 포함하는 디렉토리를 무시합니다.
If MyName <> "." And MyName <> ".." Then
' MyName이 디렉토리인지 확인하기 위해서 비트별(bitwise) 비교를 사용합니다.
If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then
Debug.Print MyName ' 항목만 표시합니다
End If ' 그것은 디렉토리를 표시합니다.
End If
MyName = Dir ' 다음 항목을 읽어들입니다.
◆ DoEvents 함수
운영 체제가 다른 이벤트를 처리할 수 있도록 실행을 넘겨줍니다.
구문 DoEvents( )
참고
DoEvents 함수는 Visual Basic, Standard Edition과 같은 독립 실행용 버전 Visual Basic에서 열려있는 폼의 수를 나타내는 Integer값을 반환합니다. DoEvents는 다른 모든 응용프로그램에서는 0을 반환합니다. DoEvents는 컨트롤을 운영 체제에 전달하며, 운영체제가 대기열에 있는 이벤트의 처리를 끝내고 SendKeys 대기열에 있는 모든 키들이 보내진 후에 컨트롤은 반환됩니다.
DoEvents는 예를 들어, 파일 검색처럼 시작한 후 사용자가 그 프로세스를 취소할 수 있도록 해주는 것과 같은 간단한 작업에 아주 유용합니다. 오랫동안 실행되는 프로세스의 경우, Timer를 사용하거나 ActiveX EXE 구성 요소에 그 작업을 위임함으로써 그 프로세서를 넘겨주는 작업이 더 잘 수행될 수 있습니다. ActiveX EXE 구성 요소에 위임할 경우, 그 작업은 사용자의 응용 프로그램과는 독자적으로 완벽하게 실행될 수 있고 운영 체제가 다중 작업과 시간 분할을 담당합니다.
주의 이벤트 프로시저 내의 프로세서를 일시적으로 넘겨줄 때는, 첫번째 호출이 반환되기 전에 프로시저가 코드의 다른 부분에서 다시 실행되지 않도록 주의하십시오. 이런 경우 예상치 않은 결과를 초래할 수 있습니다. 또한 컨트롤을 넘겨주는 동안 다른 응용 프로그램이 예기치 않은 방법으로 프로시저와 상호작용할 가능성이 있을 경우, DoEvents를 사용하지 않도록 하십시오. |
|
DoEvents 함수 예제
이 예제는 DoEvents 함수를 사용하여 루프의 매 1000번 반복 때마다 한 번씩 운영 체제가 실행을 하도록 합니다. DoEvents는 호스트 프로그램이 Visual Basic일 때에만 열린 Visual Basic 폼의 수를 반환합니다.
Dim I, OpenForms ' 불러들여 표시된 Visual Basic 폼의 수를 보유할 변수를 작성합니다.
For I = 1 To 150000 ' 루프를 시작합니다.
If I Mod 1000 = 0 Then ' if 루프가 1000번 반복되었습니다.
OpenForms = DoEvents ' 운영 체제로 넘깁니다.
End If
Next I ' 루프 카운터 증가