CFtpFileFind クラス

FTP サーバーのインターネット ファイル検索を支援します。

構文

class CFtpFileFind : public CFileFind

メンバー

パブリック コンストラクター

名前 説明
CFtpFileFind::CFtpFileFind CFtpFileFind オブジェクトを構築します。

パブリック メソッド

名前 説明
CFtpFileFind::FindFile FTP サーバー上のファイルを検索します。
CFtpFileFind::FindNextFile FindFile の以前の呼び出しからファイル検索を 続行します
CFtpFileFind::GetFileURL 見つかったファイルの URL (パスを含む) を取得します。

解説

CFtpFileFind には、検索を開始し、ファイルを検索し、ファイルに関する URL やその他の説明情報を返すメンバー関数が含まれています。

インターネットおよびローカル ファイル検索用に設計されたその他の MFC クラスには、 CGopherFileFindCFileFind があります。 これらのクラスと共 CFtpFileFindに、これらのクラスは、サーバー プロトコルやファイルの種類 (ローカル コンピューターまたはリモート サーバー) に関係なく、クライアントが特定のファイルを検索するためのシームレスなメカニズムを提供します。 HTTP は検索に必要な直接ファイル操作をサポートしていないため、HTTP サーバーで検索するための MFC クラスはありません。

使用方法とその他の WinInet クラスの詳細については、WinInet を使用CFtpFileFindしたインターネット プログラミングに関する記事を参照してください。

次のコードは、FTP サーバーの現在のディレクトリ内のすべてのファイルを列挙する方法を示しています。

// create a session object to initialize WININET library
// Default parameters mean the access method in the registry
// (that is, set by the "Internet" icon in the Control Panel)
// will be used.

CInternetSession sess(_T("My FTP Session"));

CFtpConnection *pConnect = NULL;

try
{
   // Request a connection to ftp.microsoft.com. Default
   // parameters mean that we'll try with username = ANONYMOUS
   // and password set to the machine name @ domain name
   pConnect = sess.GetFtpConnection(_T("ftp.microsoft.com"));

   // use a file find object to enumerate files
   CFtpFileFind finder(pConnect);

   // start looping
   BOOL bWorking = finder.FindFile(_T("*"));

   while (bWorking)
   {
      bWorking = finder.FindNextFile();
      _tprintf_s(_T("%s\n"), (LPCTSTR)finder.GetFileURL());
   }
}
catch (CInternetException *pEx)
{
   TCHAR sz[1024];
   pEx->GetErrorMessage(sz, 1024);
   _tprintf_s(_T("ERROR!  %s\n"), sz);
   pEx->Delete();
}

// if the connection is open, close it
if (pConnect != NULL)
{
   pConnect->Close();
   delete pConnect;
}

継承階層

CObject

CFileFind

CFtpFileFind

必要条件

ヘッダー: afxinet.h

CFtpFileFind::CFtpFileFind

このメンバー関数は、オブジェクトを構築 CFtpFileFind するために呼び出されます。

explicit CFtpFileFind(
    CFtpConnection* pConnection,
    DWORD_PTR dwContext = 1);

パラメーター

pConnection
CFtpConnection オブジェクトを指すポインターです。 FTP 接続を取得するには、CInternetSession::GetFtpConnection を呼び出 します

dwContext
オブジェクトの CFtpFileFind コンテキスト識別子。 詳細については、次 の解説を参照してください。

解説

dwContext の既定値は、MFC によって、オブジェクトを作成した CFtpFileFind CInternetSession オブジェクトからオブジェクトにCFtpFileFind送信されます。 既定値をオーバーライドして、コンテキスト識別子を選択した値に設定できます。 コンテキスト識別子が CInternetSession::OnStatusCallback に返され、識別されるオブジェクトの状態が提供されます。 コンテキスト識別子の詳細については、インターネットの最初の手順: WinInet に関する記事を参照してください。

このトピックの前のクラスの概要の例を参照してください。

CFtpFileFind::FindFile

FTP ファイルを検索するには、このメンバー関数を呼び出します。

virtual BOOL FindFile(
    LPCTSTR pstrName = NULL,
    DWORD dwFlags = INTERNET_FLAG_RELOAD);

パラメーター

pstrName
検索するファイルの名前を含む文字列へのポインター。 NULL の場合、呼び出しは野生カード検索 (*) を実行します。

dwFlags
このセッションの処理方法を説明するフラグ。 これらのフラグはビットごとの OR 演算子 (|) と組み合わせることができ、次のようになります。

  • INTERNET_FLAG_RELOAD ローカルにキャッシュされている場合でも、ネットワークからデータを取得します。 これが既定のフラグです。

  • INTERNET_FLAG_DONT_CACHE データは、ローカルまたはゲートウェイにキャッシュしないでください。

  • INTERNET_FLAG_RAW_DATA 未加工データ ( FTP のWIN32_FIND_DATA 構造体) を返すように既定値をオーバーライドします。

  • INTERNET_FLAG_SECURE Secure Sockets Layer または PCT を使用して、ネットワーク上のトランザクションをセキュリティで保護します。 このフラグは HTTP 要求にのみ適用されます。

  • INTERNET_FLAG_EXISTING_CONNECT 可能であれば、要求ごとに新しいセッションを作成するのではなく、新しい FindFile 要求に対してサーバーへの既存の接続を再利用します。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。 拡張エラー情報を取得するには、Win32 関数 GetLastError を呼び出します

解説

最初の FTP ファイルを取得するために呼び出FindFileした後、FindNextFile を呼び出して後続の FTP ファイルを取得できます。

このトピックの前の例を参照してください。

CFtpFileFind::FindNextFile

このメンバー関数を呼び出して、FindFile メンバー関数の呼び出しで開始されたファイル検索を続行します。

virtual BOOL FindNextFile();

戻り値

その他のファイルがある場合は 0 以外。見つかったファイルがディレクトリ内の最後のファイルであるか、エラーが発生した場合は 0。 拡張エラー情報を取得するには、Win32 関数 GetLastError を呼び出します。 見つかったファイルがディレクトリ内の最後のファイルである場合、または一致するファイルが見つからない場合、 GetLastError 関数はERROR_NO_MORE_FILESを返します。

解説

属性関数を呼び出す前に、この関数を少なくとも 1 回呼び出す必要があります (CFileFind::FindNextFile を参照)。

FindNextFile は、Win32 関数 FindNextFile をラップします

このトピックの前の例を参照してください。

CFtpFileFind::GetFileURL

このメンバー関数を呼び出して、指定したファイルの URL を取得します。

CString GetFileURL() const;

戻り値

ユニバーサル リソース ロケーター (URL) のファイルとパス。

解説

GetFileURL は、URL 形式で結果を提供する点を除き、メンバー関数 CFileFind::GetFilePath に似ています。 同様 CFileFind::GetFilePathに、結果にはファイル名は含まれません。 たとえば、 file1.txt 戻り値に //moose/dir/file1.txt: 配置します ftp://moose/dir/

関連項目

CFileFind クラス
階層図
CGopherFileFind クラス
CInternetFile クラス
CGopherFile クラス
CHttpFile クラス