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 の Image (Type 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 セッション ハンドルが使用されます。

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

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

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

注意

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

要件

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

こちらもご覧ください

FTP セッション

WinINet 関数