次の方法で共有


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::ReadCInternetFile::WriteCInternetConnection::Close、または CFtpFileFind::FindFile だけです。ほかの FTP 関数を同一の FTP セッションで呼び出すと、処理に失敗してエラー コードに FTP_ETRANSFER_IN_PROGRESS が設定されます。

pstrFileName パラメータは、現在のフォルダに対する相対の部分的なファイル名、または完全なファイル名のどちらも可能です。円記号 (\) またはスラッシュ (/) を、それぞれの名前のフォルダ名の区切り記号として使用できます。OpenFile は、フォルダを使用する前に、フォルダ名の区切り記号を適切な文字に変換します。

コンテキスト ID に独自の値を設定するには、dwContext の既定値をオーバーライドします。コンテキスト ID は、CInternetSession オブジェクトで作成された CFtpConnection オブジェクトによるこの処理に関連付けられています。値は CInternetSession::OnStatusCallback に返され、指定された操作のステータスを提供します。コンテキスト ID の詳細については、「WinInet の基礎」を参照してください。

必要条件

ヘッダー : afxinet.h

参照

参照

CFtpConnection クラス

階層図

CInternetConnection クラス

CFtpConnection::GetFile

CGopherConnection::OpenFile

CInternetFile::Write

CInternetFile::Read

その他の技術情報

CFtpConnection のメンバ