C++

[C++] FTP 파일 찾기 예제 (FtpFindFirstFile)

Let it out 2024. 1. 18. 00:58

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

 

FtpFindFirstFile

FileName 検索するディレクトリパス名またはファイル名。NULLを指定した場合、サーバ上のカレントディレクトリの最初のファイルが本関数で検索される。

nienie.com

 

반응형

'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