FtpGetFileA 関数 (wininet.h)

FTP サーバーからファイルを取得し、指定したファイル名の下に格納し、プロセスで新しいローカル ファイルを作成します。

構文

BOOL FtpGetFileA(
  [in] HINTERNET hConnect,
  [in] LPCSTR    lpszRemoteFile,
  [in] LPCSTR    lpszNewFile,
  [in] BOOL      fFailIfExists,
  [in] DWORD     dwFlagsAndAttributes,
  [in] DWORD     dwFlags,
  [in] DWORD_PTR dwContext
);

パラメーター

[in] hConnect

FTP セッションへの処理。

[in] lpszRemoteFile

取得するファイルの名前を含む null で終わる文字列へのポインター。

[in] lpszNewFile

ローカル システムに作成されるファイルの名前を含む null で終わる文字列へのポインター。

[in] fFailIfExists

指定した名前のローカル ファイルが既に存在する場合に関数を続行するかどうかを示します。 fFailIfExistsTRUE で、ローカル ファイルが存在する場合、FtpGetFile は失敗します。

[in] dwFlagsAndAttributes

新しいファイルのファイル属性。 このパラメーターには、 CreateFile 関数で使用されるFILE_ATTRIBUTE_* フラグの任意の組み合わせを指定できます。

[in] dwFlags

関数がファイルのダウンロードを処理する方法を制御します。 フラグ値の最初のセットは、転送が行われる条件を示します。 これらの転送の種類のフラグは、キャッシュを制御するフラグの 2 番目のセットと組み合わせて使用できます。

アプリケーションは、これらの転送の種類の値のいずれかを選択できます。

意味
FTP_TRANSFER_TYPE_ASCII
FTP の ASCII (タイプ A) 転送方法を使用してファイルを転送します。 コントロールと書式設定の情報は、ローカルの同等のものに変換されます。
FTP_TRANSFER_TYPE_BINARY
FTP の Image (Type I) 転送方法を使用してファイルを転送します。 ファイルは、変更なしで存在するとおりに転送されます。 これは既定の転送方法です。
FTP_TRANSFER_TYPE_UNKNOWN
既定値は FTP_TRANSFER_TYPE_BINARY です。
INTERNET_FLAG_TRANSFER_ASCII
ファイルを ASCII として転送します。
INTERNET_FLAG_TRANSFER_BINARY
ファイルをバイナリとして転送します。
 

次のフラグは、このファイルのキャッシュの実行方法を決定します。 次のフラグの任意の組み合わせは、転送の種類のフラグと共に使用できます。

意味
INTERNET_FLAG_HYPERLINK
ネットワークからアイテムを再読み込みするかどうかを判断するときに、有効期限時間がなく、サーバーから LastModified 時刻が返されない場合は、強制的に再読み込みを行います。
INTERNET_FLAG_NEED_FILE
ファイルをキャッシュできない場合は、一時ファイルを作成します。
INTERNET_FLAG_RELOAD
要求されたファイル、オブジェクト、またはディレクトリ リストをキャッシュからではなく元のサーバーからダウンロードします。
INTERNET_FLAG_RESYNCHRONIZE
最後にダウンロードされてからリソースが変更された場合は、HTTP リソースを再読み込みします。 すべての FTP リソースが再読み込みされます。

Windows XP および Windows Server 2003 R2 以前: Gopher リソースも再読み込みされます。

[in] dwContext

この検索を任意のアプリケーション データに関連付けるアプリケーション定義値を含む変数へのポインター。 これは、アプリケーションが既に InternetSetStatusCallback を 呼び出して状態コールバック関数を設定している場合にのみ使用されます。

戻り値

成功した場合は TRUE 、それ以外の場合 は FALSE を 返します。 特定のエラー メッセージを取得するには、 GetLastError を呼び出します。

注釈

FtpGetFile は、FTP サーバーからファイルを読み取ってローカルに格納することに関連するすべての簿記とオーバーヘッドを処理する高レベルのルーチンです。 ファイル データのみを取得する必要があるアプリケーション、またはファイル転送を厳密に制御する必要があるアプリケーションでは、 FtpOpenFile 関数と InternetReadFile 関数を使用する必要があります。

dwFlags パラメーターでFTP_TRANSFER_TYPE_ASCIIが指定されている場合、ファイル データの変換により、コントロール文字と書式設定文字がローカルの同等の文字に変換されます。 既定の転送はバイナリ モードで、ファイルはサーバーに格納されているのと同じ形式でダウンロードされます。

lpszRemoteFilelpszNewFile の両方に、現在のディレクトリに対するファイル名の一部または完全修飾を指定できます。

WinINet API の他のすべての側面と同様に、この関数を DllMain またはグローバル オブジェクトのコンストラクターとデストラクター内から安全に呼び出すことはできません。

メモ WinINet では、サーバーの実装はサポートされていません。 また、サービスから使用しないでください。 サーバーの実装またはサービスの場合は、 Microsoft Windows HTTP サービス (WinHTTP) を使用します。
 

注意

wininet.h ヘッダーは、FTPGetFile をエイリアスとして定義します。このエイリアスは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー wininet.h
Library Wininet.lib
[DLL] Wininet.dll

こちらもご覧ください

FTP セッション

WinINet 関数