파일 찾기 함수 설명
file_find_next
함수는 이전에 주어진 마스크와 속성에 맞는 다음 파일의 이름을 반환합니다. 만약 그러한 파일이 존재하지 않으면 빈 문자열을 반환합니다.
문법
file_find_next();
반환 값
- 문자열: 다음 파일의 이름 또는 빈 문자열
예제
다음 코드는 지정된 디렉토리가 존재하는지 확인하고, 존재할 경우 "읽기 전용" .doc
파일을 찾습니다.
if (directory_exists("\User Content")) {
fileA = file_find_first("/User Content/*.doc", fa_readonly);
fileB = file_find_next();
fileC = file_find_next();
file_find_close();
}
위 코드는 지정된 디렉토리가 존재하는지 확인한 후, 그곳으로 이동하여 첫 번째 "읽기 전용" .doc
파일을 찾습니다. 이후 두 개의 추가 파일을 찾고 파일 탐색기를 닫습니다.
여러 파일 찾기
여러 파일을 찾기 위해 while
루프를 사용할 수 있습니다.
var files = [];
var file_name = file_find_first("/User Content/*.doc", fa_readonly);
while (file_name != "") {
array_push(files, file_name);
file_name = file_find_next();
}
file_find_close();
위 코드는 빈 배열을 생성하여 발견된 모든 파일 이름을 저장하고, "읽기 전용" .doc
파일을 찾기 시작합니다. 파일 이름이 빈 문자열이 아닐 경우, files
배열에 추가하고 다음 파일을 찾으려 시도합니다. 빈 문자열이 발견될 때까지 루프는 계속 반복되며, 마지막에 파일 탐색기를 닫습니다.
활용 예제
예제 번호 | 설명 |
---|---|
1 | 특정 디렉토리에서 모든 이미지 파일(.png, .jpg) 찾기 |
2 | 특정 확장자를 가진 파일의 개수 세기 |
3 | 파일 이름에 특정 키워드가 포함된 파일 찾기 |
4 | 읽기 전용 파일과 쓰기 가능한 파일을 구분하여 찾기 |
5 | 파일의 속성에 따라 다른 작업 수행하기 |
예제 1: 특정 디렉토리에서 모든 이미지 파일 찾기
var image_files = [];
var image_name = file_find_first("/User Content/*.png", fa_readonly);
while (image_name != "") {
array_push(image_files, image_name);
image_name = file_find_next();
}
file_find_close();
예제 2: 특정 확장자를 가진 파일의 개수 세기
var count = 0;
var doc_name = file_find_first("/User Content/*.doc", fa_readonly);
while (doc_name != "") {
count += 1;
doc_name = file_find_next();
}
file_find_close();
예제 3: 파일 이름에 특정 키워드가 포함된 파일 찾기
var keyword_files = [];
var keyword_name = file_find_first("/User Content/*keyword*.doc", fa_readonly);
while (keyword_name != "") {
array_push(keyword_files, keyword_name);
keyword_name = file_find_next();
}
file_find_close();
예제 4: 읽기 전용 파일과 쓰기 가능한 파일을 구분하여 찾기
var readonly_files = [];
var writable_files = [];
var file_name = file_find_first("/User Content/*.*", fa_readonly);
while (file_name != "") {
if (file_attributes(file_name) & fa_readonly) {
array_push(readonly_files, file_name);
} else {
array_push(writable_files, file_name);
}
file_name = file_find_next();
}
file_find_close();
예제 5: 파일의 속성에 따라 다른 작업 수행하기
var file_name = file_find_first("/User Content/*.*", fa_readonly);
while (file_name != "") {
if (file_attributes(file_name) & fa_readonly) {
// 읽기 전용 파일에 대한 작업
} else {
// 쓰기 가능한 파일에 대한 작업
}
file_name = file_find_next();
}
file_find_close();