Views 20574 Votes 0 Comment 6
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
특정 디렉토리 아래에 있는 모든 파일과 디렉토리 혹은 특정 조건의 파일과 디렉토리를 얻고자 한다면, 다음 API 함수를 이용한다. 

HANDLE FindFirstFile(LPCSTR lpFileName, LPWIN32_FIND_DATA finddata);
BOOL FindNextFile(HANDLE hFind, LPWIN32_FIND_DATA finddata);
BOOL FindClose(HANDLE hFind);

FindFirstFile : 파일 검색을 시작한다. 
파일 검색 문자열이 잘못되었거나 다른 이유로 함수 실행이 실패했을 경우 INVALID_HANDLE_VALUE로 Define된 상수값을 반환한다. 성공했을 경우 파일 검색 핸들을 반환하고 두 번째로 전달되는 구조체에 첫 번째로 발견되는 파일의 정보를 넣어준다. 

LPCSTR lpFileName
파일 검색 문자열을 넘겨준다.
예) "c:*.*" 혹은 "c:*.txt"

LPWIN32_FIND_DATA finddata
파일 검색 데이터 구조체의 포인터를 넘겨준다. 

FindNextFile : 다음 파일의 정보를 얻는다. 
함수 실행이 성공하였을 경우 TRUE를, 실패하였을 경우 FALSE를 반환한다. 함수 성공시 두 번째 인자로 전해지는 구조체에 파일의 정보를 넣어준다. 

HANDLE hFind
FindFirstFile이 반환한 파일 검색 핸들을 넘겨준다. 

LPWIN32_FIND_DATA finddata
파일 검색 데이터 구조체의 포인터를 넘겨준다. 

FileClose : 파일 핸들을 닫는다. 
FindFirstFile에 의해 열린 파일 핸들을 닫는다. 성공하였을 경우 TRUE를, 실패하였을 경우 FALSE를 반환한다. 

HANDLE hFind
FindFirstFile이 반환한 파일 검색 핸들을 넘겨준다. 

사용 예
#include <windows.h>
#include <stdio.h>
#include <string.h>

int main()
{
    WIN32_FIND_DATA FindData;
    HANDLE hFind;
    char path[255];

    strcpy(path, "c:windows*");
    
    hFind = FindFirstFile((LPCSTR)path, &FindData);
    if(hFind==INVALID_HANDLE_VALUE)
        return 0;
    
    do{
        printf("%s
", FindData.cFileName);
    }while(FindNextFile(hFind, &FindData));

    FindClose(hFind);

    return 0;
}

?
  • ?
    안녕하세요 2014.10.22 17:08
    블로그로 담아가도 되나요?
  • profile
    hooni 2014.10.22 17:29
    넵, 당연히 담아가셔도 됩니다.
    출처를 함께 남겨주세요^^ㅋ
    감사합니다.
  • ?
    안녕하세요 2014.10.23 10:48
    감사합니다~ 근데 댓글 남기기 되게 힘드네요 ;;
  • profile
    hooni 2014.10.23 14:14
    앗.. 그래요? ㅠㅠ
    그냥 로그인 하지 않아도 입력되게 해두었는데요.
    개선해야 할 부분이 있으면 제안해 주시면 적극 반영하겠습니다.
    감사합니다.^^
  • ?
    gpsyusa 2019.01.03 16:58
    매우 잘 보고 갑니다~
    c에서는 _finddatai64_t를 사용했었는데 c++에서는 불가능하더라고요
    do{}while도 익숙하지 않아서 그냥 while문으로 변경하였습니다.
    다행이 FindNextFile이 새로운 파일이 없을땐 0을 반환해서 큰 문제는 없었네요.
    종종 들려서 공부하면 좋을것 같네요.
    좋은 글 감사합니다~
  • profile
    hooni 2019.01.09 04:37
    댓글 감사합니다.^^

  1. [ios] 아이폰용 앱 오픈 소스들

    Date2013.04.23 CategoryDevelop Byhooni Views466868
    Read More
  2. [ios] 언어, 지역, 국가 설정 가져오기

    Date2014.05.12 CategoryDevelop Byhooni Views269742
    Read More
  3. 자주 쓰는 Docker 명령어 alias

    Date2020.01.10 CategoryDevelop Byhooni Views269417
    Read More
  4. [ios] Start developing your navigation app for CarPlay without enrollment

    Date2020.02.22 CategoryDevelop Byhooni Views124748
    Read More
  5. [android] 만화 어플 소스코드

    Date2013.04.23 CategoryDevelop Byhooni Views92836
    Read More
  6. 레고 마인드스톰 NXT 수도쿠, 큐브 소스코드..

    Date2013.04.23 CategoryDevelop Byhooni Views81417
    Read More
  7. [c#] Hashtable <-> Json (dll 포함)

    Date2013.04.23 CategoryDevelop Byhooni Views80652
    Read More
  8. [C#] MD5, SHA1 해시 & 인코딩

    Date2013.04.23 CategoryDevelop Byhooni Views77855
    Read More
  9. [android] 점심 해결 앱 소스 코드 ㅋㅋ

    Date2013.04.23 CategoryDevelop Byhooni Views76396
    Read More
  10. [json] 종결자 (설명과 웹, C/C++/C# 프로그램 샘플 코드)

    Date2013.04.23 CategoryDevelop Byhooni Views71971
    Read More
  11. [android] keytool을 사용하여 키스토어 생성

    Date2013.04.23 CategoryDevelop Byhooni Views69511
    Read More
  12. [ios] Random Thoughts: Rand() vs. arc4random()

    Date2013.10.31 CategoryDevelop Byhooni Views68043
    Read More
  13. [iphone] performSelector:withObject:afterDelay: 에 대한 내용

    Date2013.04.23 CategoryDevelop Byhooni Views65864
    Read More
  14. [Android] 2010년에 만들었던 세미나 자료.

    Date2013.05.28 CategoryDevelop Byhooni Views64661
    Read More
  15. [c#] 간단한 IPC 통신 예제

    Date2013.04.23 CategoryDevelop Byhooni Views63729
    Read More
  16. [vb] 비주얼 베이직 자격증용 ㅎㅎ

    Date2003.04.23 CategoryDevelop Byhooni Views61382
    Read More
Board Pagination Prev 1 2 3 4 5 ... 53 Next
/ 53