CFtpFileFind 클래스
FTP 서버의 인터넷 파일 검색에 유용합니다.
구문
class CFtpFileFind : public CFileFind
멤버
공용 생성자
속성 | 설명 |
---|---|
CFtpFileFind::CFtpFileFind | CFtpFileFind 개체를 생성합니다. |
공용 메서드
이름 | 설명 |
---|---|
CFtpFileFind::FindFile | FTP 서버에서 파일을 찾습니다. |
CFtpFileFind::FindNextFile | FindFile에 대한 이전 호출에서 파일 검색을 계속합니다. |
CFtpFileFind::GetFileURL | 찾은 파일의 URL(경로 포함)을 가져옵니다. |
설명
CFtpFileFind
에는 검색을 시작하고, 파일을 찾고, 파일에 대한 URL 또는 기타 설명 정보를 반환하는 멤버 함수가 포함되어 있습니다.
검색된 인터넷 및 로컬 파일을 위해 설계된 다른 MFC 클래스에는 CGopherFileFind 및 CFileFind가 포함됩니다. 이러한 클래스는 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;
}
상속 계층 구조
CFtpFileFind
요구 사항
헤더: afxinet.h
CFtpFileFind::CFtpFileFind
이 멤버 함수는 개체를 생성하기 위해 호출됩니다 CFtpFileFind
.
explicit CFtpFileFind(
CFtpConnection* pConnection,
DWORD_PTR dwContext = 1);
매개 변수
pConnection
CFtpConnection
개체에 대한 포인터입니다. CInternetSession::GetFtpConnection을 호출하여 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.txt
ftp://moose/dir/
에 있습니다//moose/dir/file1.txt:
.
참고 항목
CFileFind 클래스
계층 구조 차트
CGopherFileFind 클래스
CInternetFile 클래스
CGopherFile 클래스
CHttpFile 클래스