FTP サーバー上のファイルを読み出しまたは書き込みのために開きます。
CInternetFile* OpenFile(
LPCTSTR pstrFileName,
DWORD dwAccess = GENERIC_READ,
DWORD dwFlags = FTP_TRANSFER_TYPE_BINARY,
DWORD_PTR dwContext = 1
);
パラメーター
pstrFileName
開くファイルの名前が入っている文字列へのポインター。dwAccess
ファイルにアクセスする方法を決定します。 GENERIC_READ または GENERIC_WRITE のどちらかとし、両方は設定できません。dwFlags
転送方法を指定します。 以下に示す FTP_TRANSFER_* 定数のいずれかを指定できます。FTP_TRANSFER_TYPE_ASCII FTP ASCII (Type A) 転送方法を使ったファイル転送です。 コントロールとフォーマット情報をローカルの対応するものに変換します。
FTP_TRANSFER_TYPE_BINARY FTP のイメージ (Type I) 転送方法を使ったファイル転送です。 ファイルは変換されず、元の形式で転送されます。 これが既定の転送方法です。
dwContext
ファイルを開くためのコンテキスト ID。 dwContextの詳細については、「解説」を参照してください。
戻り値
CInternetFile オブジェクトへのポインターを返します。
解説
以下に示す状況では、OpenFile を使用してください。
アプリケーションから送信して、FTP サーバーのファイルとして作成する必要のあるデータがあるが、そのデータがローカル ファイル内のものではない場合。 アプリケーションは OpenFile によりファイルを開いてから、CInternetFile::Write を使ってサーバーに FTP ファイル データを送信します。
アプリケーションがサーバーからファイルを取り出し、ディスクへ書き込む代わりにアプリケーションが制御するメモリへ置く必要がある場合。 アプリケーションは OpenFile を使ってファイルを開いてから、CInternetFile::Read を使用します。
アプリケーションが、ファイル転送において、細かい制御をする必要がある場合。 たとえば、ファイルをダウンロード中に、アプリケーションで、ファイル転送ステータスの処理経過を示すプログレス コントロールを表示する場合です。
OpenFile を呼び出してから CInternetConnection::Close を呼び出すまでの間、アプリケーションが呼び出せるのは CInternetFile::Read、CInternetFile::Write、CInternetConnection::Close、または CFtpFileFind::FindFile だけです。 ほかの FTP 関数を同一の FTP セッションで呼び出すと、処理に失敗してエラー コードに FTP_ETRANSFER_IN_PROGRESS が設定されます。
pstrFileName パラメーターは、現在のフォルダーに対する相対の部分的なファイル名、または完全なファイル名のどちらも可能です。 円記号 (\) またはスラッシュ (/) を、それぞれの名前のフォルダー名の区切り記号として使用できます。 OpenFile は、フォルダーを使用する前に、フォルダー名の区切り記号を適切な文字に変換します。
コンテキスト ID に独自の値を設定するには、dwContext の既定値をオーバーライドします。 コンテキスト ID は、CInternetSession オブジェクトで作成された CFtpConnection オブジェクトによるこの処理に関連付けられています。 値は CInternetSession::OnStatusCallback に返され、指定された操作のステータスを提供します。 参照してくださいインターネットの最初のステップ:WinInetについてのコンテキスト id。
必要条件
**ヘッダー:**afxinet.h