Sdílet prostřednictvím


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 CFtpFileFindposkytují 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

Objekt CObject

CFileFind

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