次の方法で共有


FtpOpenFileA 関数 (wininet.h)

読み取りまたは書き込みのために FTP サーバー上のリモート ファイルへのアクセスを開始します。

構文

HINTERNET FtpOpenFileA(
  [in] HINTERNET hConnect,
  [in] LPCSTR    lpszFileName,
  [in] DWORD     dwAccess,
  [in] DWORD     dwFlags,
  [in] DWORD_PTR dwContext
);

パラメーター

[in] hConnect

FTP セッションへのハンドル。

[in] lpszFileName

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

[in] dwAccess

ファイル アクセス。 このパラメーターは、GENERIC_READ または GENERIC_WRITEできますが、両方を指定することはできません。

[in] dwFlags

転送が発生する条件。 アプリケーションでは、1 つの転送の種類と、ファイルのキャッシュの制御方法を示すフラグのいずれかを選択する必要があります。

転送の種類には、次のいずれかの値を指定できます。

価値 意味
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
ファイルをバイナリとして転送します。
 

ファイルのキャッシュを制御するには、次の値を使用します。 アプリケーションでは、これらの値の 1 つ以上を使用できます。

価値 意味
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 呼び出して状態コールバック関数を設定している場合にのみ使用されます。

戻り値

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

備考

ftpOpenFile 呼び出した後、InternetCloseHandle呼び出すまで、同じ FTP セッション ハンドル上の FTP 関数に対する他のすべての呼び出しが失敗し、エラー メッセージが ERROR_FTP_TRANSFER_IN_PROGRESSに設定されます。 FtpOpenFileによって返される HINTERNET ハンドル の使用が完了したら、InternetCloseHandle 関数を使用して呼び出し元のアプリケーションを閉じる必要があります。

1 つの FTP セッションで開くことができるファイルは 1 つだけです。 そのため、ファイル ハンドルは返されません。アプリケーションは必要に応じて FTP セッション ハンドルを使用するだけです。

エラー 12058 は、使用可能なローカル ポートがないため に FtpOpenFileA が失敗した場合に発生する可能性があります。

lpszFileName パラメーターには、現在のディレクトリに対する部分的または完全修飾ファイル名を指定できます。

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

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

手記

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

必要条件

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

関連項目

FTP セッション

WinINet Functions の