InternetFindNextFile インターネット上のファイルの検索の続行

Cの宣言:

BOOL InternetFindNextFile(
	IN HINTERNET hEnum,
	OUT LPVOID FindData);

説明:

FtpFindFirstFileまたはGopherFindFirstFileで開始されたファイル検索を続行し、次のファイルを取得する。

引数の意味は以下の通り。
hEnum FtpFindFirstFileまたはGopherFindFirstFileで返された検索ハンドル。
FindData 検索結果。FTPの場合WIN32_FIND_DATAで、Gopherの場合GOPHER_FIND_DATAである。

戻り値は、関数の実行に成功したか否かを表す真偽値である。ファイルの検索を完了した場合、エラーとしてERROR_NO_MORE_FILESが設定される。

Cのサンプル:

“ftp.foo.bar”というFTPサイトにログインし、“pub/Misc/”というディレクトリにあるファイルの一覧を表示する。
void EnumFtpFiles()
{
	HINTERNET hInternet;
	HINTERNET hFtpSession;
	HINTERNET hFind;
	WIN32_FIND_DATA fd;

	/* WININETの初期化 */
	hInternet = InternetOpen(
		"WININET Sample Program",
		INTERNET_OPEN_TYPE_DIRECT,
		NULL,
		NULL,
		0);
	
	/* ftp.foo.barへ接続 */
	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);
	} while(InternetFindNextFile(hFind, &fd));

	/* 後処理 */
	InternetCloseHandle(hFind);
	InternetCloseHandle(hFtpSession);
	InternetCloseHandle(hInternet);
}

(original text:1999/04/15 更新)

本ドキュメントの内容は保証しません。本ドキュメントによって生じた結果について、一切の責任を負いません。