반응형
FTP에서 업로드 할 때 파일을 찾아야 하는 경우가 있다.
이때 FtpFindFirstFile 함수를 사용한다.
1. FtpFindFirstFile 함수 원형
HINTERNET FtpFindFirstFile(
IN HINTERNET hFtpSession,
IN LPCTSTR FileName OPTIONAL,
IN LPWIN32_FIND_DATA FindData,
IN DWORD Flags,
IN DWORD Context);
함수 인수 설명
hFtpSession | 설정된 FTP 세션. |
FileName | 검색할 디렉토리 경로 이름 또는 파일 이름. NULL이 지정되면 서버의 현재 디렉토리의 첫 번째 파일이이 함수에서 검색됩니다. |
FindData | 검색 결과. |
Flags | InternetOpenUrl 참조. |
Context | 콜백 함수에 전달하는 애플리케이션 정의의 32비트 값. |
2. 예제
void EnumFtpFiles()
{
HINTERNET hInternet;
HINTERNET hFtpSession;
HINTERNET hFind;
WIN32_FIND_DATA fd;
hInternet = InternetOpen(
"WININET Sample Program",
INTERNET_OPEN_TYPE_DIRECT,
NULL,
NULL,
0);
//Ftp Connect 부분 핸들은 HINTERNET 이다.
hFtpSession = InternetConnect(
hInternet,
"ftp.foo.bar",
INTERNET_DEFAULT_FTP_PORT,
NULL,
NULL,
INTERNET_SERVICE_FTP,
0,
0);
hFind = FtpFindFirstFile(hFtpSession, "pub/Misc/", &fd, 0, 0);
if(hFind != NULL) do {
printf("%s\n", fd.cFileName); //출력 해도 되고 Delete 해도 됨.
} while(InternetFindNextFile(hFind, &fd)); //다음 파일로 넘겨서 다 찾을때 까지 반복.
InternetCloseHandle(hFind); //핸들은 꼭 닫아주자 누수 확인 할것.
InternetCloseHandle(hFtpSession);
InternetCloseHandle(hInternet);
}
출처 : http://nienie.com/~masapico/api_FtpFindFirstFile.html
반응형
'C++' 카테고리의 다른 글
[C++ ] 2차원 포인터 정리 (0) | 2024.01.25 |
---|---|
[C++ ] 1차원 포인터 정리 (0) | 2024.01.25 |
[C++] Vector(벡터) 사용법 (0) | 2024.01.18 |
[C++] FTP Timeout 설정 예제 (InternetSetOption) (1) | 2024.01.18 |
[C++] FTP 예제(SImple Ftp Class) (0) | 2024.01.18 |