FtpFindFirstFileW 関数 (wininet.h)
指定された FTP セッションの指定されたディレクトリを検索します。 ファイルとディレクトリのエントリは、 WIN32_FIND_DATA 構造でアプリケーションに返されます。
構文
HINTERNET FtpFindFirstFileW(
[in] HINTERNET hConnect,
[in] LPCWSTR lpszSearchFile,
[out] LPWIN32_FIND_DATAW lpFindFileData,
[in] DWORD dwFlags,
[in] DWORD_PTR dwContext
);
パラメーター
[in] hConnect
InternetConnect から返された FTP セッションを処理します。
[in] lpszSearchFile
FTP サーバーのファイル システムの有効なディレクトリ パスまたはファイル名を指定する null で終わる文字列へのポインター。 文字列にはワイルドカードを含めることができますが、空白は使用できません。 lpszSearchFile の値が NULL の場合、または空の文字列の場合、関数はサーバー上の現在のディレクトリ内の最初のファイルを検索します。
[out] lpFindFileData
見つかったファイルまたはディレクトリに関する情報を受け取る WIN32_FIND_DATA 構造体へのポインター。
[in] dwFlags
この関数の動作を制御します。 このパラメーターは、次の値と組み合わせて使用できます。
INTERNET_FLAG_HYPERLINK
INTERNET_FLAG_NEED_FILE
INTERNET_FLAG_NO_CACHE_WRITE
INTERNET_FLAG_RELOAD
INTERNET_FLAG_RESYNCHRONIZE
[in] dwContext
この検索を任意のアプリケーション データに関連付けるアプリケーション定義値を指定する変数へのポインター。 このパラメーターは、アプリケーションが既に InternetSetStatusCallback を 呼び出して状態コールバック関数を設定している場合にのみ使用されます。
戻り値
ディレクトリ列挙が正常に開始された場合は要求の有効なハンドルを返します。それ以外の場合は NULL を 返します。 特定のエラー メッセージを取得するには、 GetLastError を呼び出します。 GetLastError がERROR_INTERNET_EXTENDED_ERRORを返す場合、関数で一致するファイルが見つからない場合と同様に、「エラーの処理」に記載されているように、InternetGetLastResponseInfo 関数を呼び出して拡張エラー テキストを取得します。
解説
FtpFindFirstFile の場合、WIN32_FIND_DATA構造体で返されるファイル時刻は、協定世界時 (UTC) 形式ではなく、ローカル タイム ゾーンに格納されます。
FtpFindFirstFile は FindFirstFile 関数に似ています。 ただし、特定の FTP セッション内で一度に発生できる FtpFindFirstFile は 1 つだけであることに注意してください。 したがって、列挙は FTP セッション ハンドルと相関しています。 これは、FTP プロトコルではセッションごとに 1 つのディレクトリ列挙のみを許可するためです。
FtpFindFirstFile を呼び出した後、InternetCloseHandle を呼び出すまで、アプリケーションは指定された FTP セッション ハンドルで FtpFindFirstFile を再度呼び出すことはできません。 そのハンドルで FtpFindFirstFile の呼び出しが行われた場合、関数は ERROR_FTP_TRANSFER_IN_PROGRESSで失敗します。 呼び出し元のアプリケーションで FtpFindFirstFile によって返される HINTERNET ハンドルの使用が完了したら、InternetCloseHandle 関数を使用して閉じる必要があります。
FtpFindFirstFile を使用してディレクトリ列挙を開始した後、InternetFindNextFile 関数を使用して列挙を続行できます。
FTP プロトコルには列挙の標準的な手段がないため、ファイルの作成日時など、ファイルに関する一般的な情報の一部は、常に使用できる、または正しいとは限りません。 この場合、 FtpFindFirstFile と InternetFindNextFile は、使用可能な情報に基づいて最適な推測で使用できない情報を入力します。 たとえば、作成日と最終アクセス日は、多くの場合、ファイルの変更日と同じです。
アプリケーションは、FtpOpenFile と InternetCloseHandle の呼び出しの間に FtpFindFirstFile を呼び出すことができません。
WinINet API の他のすべての側面と同様に、この関数を DllMain またはグローバル オブジェクトのコンストラクターとデストラクター内から安全に呼び出すことはできません。
Note
wininet.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして FtpFindFirstFile を定義します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | wininet.h |
Library | Wininet.lib |
[DLL] | Wininet.dll |