다음을 통해 공유


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 클래스가 없습니다.

사용 CFtpFileFind 방법 및 다른 WinInet 클래스에 대한 자세한 내용은 WinInet을 사용한 인터넷 프로그래밍 문서를 참조하세요.

예시

다음 코드에서는 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 개체에 대한 포인터입니다. CInternetSession::GetFtp커넥트ion을 호출하여 FTP 연결을 가져올 수 있습니다.

dwContext
개체의 CFtpFileFind 컨텍스트 식별자입니다. 자세한 내용은 다음 발언을 참조하세요.

설명

dwContext의 기본값은 MFC에서 개체를 CFtpFileFind 만든 CFtpFileFind CInternetSession 개체의 개체로 전송됩니다. 기본값을 재정의하여 컨텍스트 식별자를 선택한 값으로 설정할 수 있습니다. 컨텍스트 식별자는 CInternetSession::OnStatusCallback으로 반환되어 식별된 개체에 대한 상태 제공합니다. 컨텍스트 식별자에 대한 자세한 내용은 Internet First Steps: 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 보안 소켓 계층 또는 PCT를 사용하여 유선에서 트랜잭션을 보호합니다. 이 플래그는 HTTP 요청에만 적용됩니다.

  • INTERNET_FLAG_EXISTING_CONNECT 가능하면 각 요청에 대한 새 세션을 만드는 대신 새 FindFile 요청에 대해 서버에 대한 기존 연결을 다시 사용합니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다. 확장 오류 정보를 얻으려면 Win32 함수 GetLastError를 호출합니다.

설명

첫 번째 FTP 파일을 검색하기 위해 호출 FindFile 한 후 FindNextFile을 호출하여 후속 FTP 파일을 검색할 수 있습니다.

예시

이 항목의 앞부분에 있는 예제를 참조하세요.

CFtpFileFind::FindNextFile

FindFile 멤버 함수를 호출하여 시작된 파일 검색을 계속하려면 이 멤버 함수를 호출합니다.

virtual BOOL FindNextFile();

Return Value

파일이 더 있는 경우 0이 아닌 경우 파일이 디렉터리의 마지막 파일이거나 오류가 발생한 경우 0입니다. 확장 오류 정보를 얻으려면 Win32 함수 GetLastError를 호출합니다. 찾은 파일이 디렉터리의 마지막 파일이거나 일치하는 파일을 찾을 수 없는 경우 함수는 GetLastError ERROR_NO_MORE_FILES 반환합니다.

설명

특성 함수를 호출하기 전에 이 함수를 한 번 이상 호출해야 합니다(CFileFind::FindNextFile 참조).

FindNextFile 는 Win32 함수 FindNextFile을 래핑합니다.

예시

이 항목의 앞부분에 있는 예제를 참조하세요.

CFtpFileFind::GetFileURL

이 멤버 함수를 호출하여 지정된 파일의 URL을 가져옵니다.

CString GetFileURL() const;

Return Value

URL(유니버설 리소스 로케이터)의 파일 및 경로입니다.

설명

GetFileURL 는 URL 형식으로 결과를 제공한다는 점을 제외하고 멤버 함수 CFileFind::GetFilePath 와 유사합니다. 마찬가지로 CFileFind::GetFilePath결과에는 파일 이름이 포함되지 않습니다. 예를 들어 반환 file1.txtftp://moose/dir/에 있습니다//moose/dir/file1.txt:.

참고 항목

CFileFind 클래스
계층 구조 차트
CGopherFileFind 클래스
CInternetFile 클래스
CGopherFile 클래스
CHttpFile 클래스