CFtpConnection::OpenFile
更新 : 2007 年 11 月
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 に返され、指定された操作のステータスを提供します。コンテキスト ID の詳細については、「WinInet の基礎」を参照してください。
必要条件
ヘッダー : afxinet.h