CFtpFileFind – třída
Pomůcky při vyhledávání internetových souborů na serverech FTP.
Syntaxe
class CFtpFileFind : public CFileFind
Členové
Veřejné konstruktory
Název | Popis |
---|---|
CFtpFileFind::CFtpFileFind | CFtpFileFind Vytvoří objekt. |
Veřejné metody
Název | Popis |
---|---|
CFtpFileFind::FindFile | Najde soubor na serveru FTP. |
CFtpFileFind::FindNextFile | Pokračuje ve vyhledávání souborů z předchozího volání funkce FindFile. |
CFtpFileFind::GetFileURL | Získá adresu URL nalezeného souboru včetně cesty. |
Poznámky
CFtpFileFind
obsahuje členské funkce, které začínají hledáním, vyhledávají soubor a vrací adresu URL nebo jiné popisné informace o souboru.
Mezi další třídy MFC určené pro vyhledávání v internetu a místních souborech patří CGopherFileFind a CFileFind. Společně s těmito třídami CFtpFileFind
poskytují bezproblémový mechanismus pro klienta najít konkrétní soubory bez ohledu na protokol serveru nebo typ souboru (buď místní počítač, nebo vzdálený server). Neexistuje žádná třída MFC pro vyhledávání na serverech HTTP, protože HTTP nepodporuje přímou manipulaci se soubory požadovanými pro hledání.
Další informace o tom, jak používat CFtpFileFind
a další třídy WinInet, naleznete v článku Internetové programování s WinInet.
Příklad
Následující kód ukazuje, jak vytvořit výčet všech souborů v aktuálním adresáři serveru 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;
}
Hierarchie dědičnosti
CFtpFileFind
Požadavky
Hlavička: afxinet.h
CFtpFileFind::CFtpFileFind
Tato členová funkce je volána k vytvoření objektu CFtpFileFind
.
explicit CFtpFileFind(
CFtpConnection* pConnection,
DWORD_PTR dwContext = 1);
Parametry
pConnection
Ukazatel na CFtpConnection
objekt. Připojení FTP můžete získat voláním CInternetSession::GetFtpConnection.
dwContext
Identifikátor kontextu objektu CFtpFileFind
. Další informace najdete v následujících poznámkách.
Poznámky
Výchozí hodnota dwContext je odeslána mfc CFtpFileFind
objektu z CInternetSession objektu, který vytvořil CFtpFileFind
objekt. Výchozí nastavení můžete přepsat tak, aby se identifikátor kontextu nastavil na hodnotu, kterou zvolíte. Identifikátor kontextu je vrácen do CInternetSession::OnStatusCallback k poskytnutí stavu objektu, se kterým je identifikován. Další informace o identifikátoru kontextu najdete v článku Internet First Steps: WinInet .
Příklad
Podívejte se na příklad v přehledu třídy dříve v tomto tématu.
CFtpFileFind::FindFile
Voláním této členské funkce vyhledejte soubor FTP.
virtual BOOL FindFile(
LPCTSTR pstrName = NULL,
DWORD dwFlags = INTERNET_FLAG_RELOAD);
Parametry
pstrName
Ukazatel na řetězec obsahující název souboru, který chcete najít. Pokud je hodnota NULL, volání provede vyhledávání se zástupným znakem (*).
dwFlags
Příznaky popisující, jak tuto relaci zpracovat. Tyto příznaky lze kombinovat s bitovým operátorem OR (|
) a jsou následující:
INTERNET_FLAG_RELOAD
Získejte data z drátu, i když jsou místně uložená v mezipaměti. Toto je výchozí příznak.INTERNET_FLAG_DONT_CACHE
Data neupamějte místně ani v žádné bráně.INTERNET_FLAG_RAW_DATA
Přepište výchozí hodnotu pro vrácení nezpracovaných dat ( WIN32_FIND_DATA struktur pro FTP).INTERNET_FLAG_SECURE
Zabezpečuje transakce na drátu pomocí secure sockets Layer nebo PCT. Tento příznak se vztahuje pouze na požadavky HTTP.INTERNET_FLAG_EXISTING_CONNECT
Pokud je to možné, znovu použijte stávající připojení k serveru pro novéFindFile
požadavky místo vytvoření nové relace pro každou žádost.
Návratová hodnota
Nenulové, pokud je úspěšné; jinak 0. Pokud chcete získat rozšířené informace o chybě, zavolejte funkci Win32 GetLastError.
Poznámky
Po volání FindFile
načíst první soubor FTP můžete volat FindNextFile pro načtení následných souborů FTP.
Příklad
Podívejte se na předchozí příklad v tomto tématu.
CFtpFileFind::FindNextFile
Voláním této členské funkce pokračujte v hledání souborů, které začalo voláním členské funkce FindFile .
virtual BOOL FindNextFile();
Návratová hodnota
Nenulové, pokud jsou k dispozici více souborů; Nula, pokud nalezený soubor je poslední v adresáři nebo pokud došlo k chybě. Pokud chcete získat rozšířené informace o chybě, zavolejte funkci Win32 GetLastError. Pokud nalezený soubor je posledním souborem v adresáři nebo pokud se nedají najít žádné odpovídající soubory, GetLastError
vrátí funkce ERROR_NO_MORE_FILES.
Poznámky
Tuto funkci musíte volat alespoň jednou před voláním jakékoli funkce atributu (viz CFileFind::FindNextFile).
FindNextFile
zabalí funkci Win32 FindNextFile.
Příklad
Podívejte se na příklad výše v tomto tématu.
CFtpFileFind::GetFileURL
Voláním této členské funkce získáte adresu URL zadaného souboru.
CString GetFileURL() const;
Návratová hodnota
Soubor a cesta k univerzálnímu lokátoru prostředků (URL).
Poznámky
GetFileURL
je podobná členské funkci CFileFind::GetFilePath s tím rozdílem, že poskytuje výsledek ve formátu adresy URL. Stejně jako v případě CFileFind::GetFilePath
, výsledek neobsahuje název souboru. Například umístění file1.txt
v //moose/dir/file1.txt:
návratu ftp://moose/dir/
.
Viz také
CFileFind – třída
Graf hierarchie
CGopherFileFind – třída
CInternetFile – třída
CGopherFile – třída
CHttpFile – třída