次の方法で共有


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

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

[in] dwFlagsAndAttributes

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

[in] dwFlags

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

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

価値 意味
FTP_TRANSFER_TYPE_ASCII
FTP の ASCII (タイプ A) 転送方法を使用してファイルを転送します。 コントロールと書式設定の情報は、ローカルの同等の情報に変換されます。
FTP_TRANSFER_TYPE_BINARY
FTP のイメージ (タイプ 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が指定されている場合、ファイル データの変換により、コントロールと書式設定の文字がローカルに変換されます。 既定の転送はバイナリ モードで、ファイルはサーバーに格納されているのと同じ形式でダウンロードされます。

lpszRemoteFile lpszNewFile には、現在のディレクトリを基準にした部分的または完全修飾ファイル名を指定できます。

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

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

手記

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

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされる最小サーバー Windows 2000 Server [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー wininet.h
ライブラリ Wininet.lib
DLL Wininet.dll

関連項目

FTP セッション

WinINet Functions の