Share via


CFtpFileFind-klasse

Opmerking

De Microsoft Foundation Classes-bibliotheek (MFC) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

Hulp bij zoekopdrachten in internetbestanden van FTP-servers.

Syntaxis

class CFtpFileFind : public CFileFind

Leden

Openbare constructors

Naam Description
CFtpFileFind::CFtpFileFind Maakt een CFtpFileFind object.

Openbare methoden

Naam Description
CFtpFileFind::FindFile Hiermee vindt u een bestand op een FTP-server.
CFtpFileFind::FindNextFile Hiermee gaat u door met het zoeken van bestanden vanuit een eerdere aanroep naar FindFile.
CFtpFileFind::GetFileURL Haalt de URL, inclusief het pad, van het gevonden bestand op.

Opmerkingen

CFtpFileFind bevat lidfuncties die een zoekopdracht starten, een bestand zoeken en de URL of andere beschrijvende informatie over het bestand retourneren.

Andere MFC-klassen die zijn ontworpen voor internet en lokaal bestand dat wordt doorzocht, zijn CGopherFileFind en CFileFind. Samen met CFtpFileFindbieden deze klassen een naadloos mechanisme voor de client om specifieke bestanden te vinden, ongeacht het serverprotocol of bestandstype (een lokale computer of een externe server). Er is geen MFC-klasse voor zoeken op HTTP-servers, omdat HTTP geen ondersteuning biedt voor het direct bewerken van bestanden die vereist is voor zoekopdrachten.

Zie het artikel Internetprogrammering met WinInet voor meer informatie over het gebruik CFtpFileFind en de andere WinInet-klassen.

Example

De volgende code laat zien hoe u alle bestanden in de huidige map van de FTP-server opsommen.

// 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;
}

Overnamehiërarchie

CObject

CFileFind

CFtpFileFind

Requirements

Koptekst: afxinet.h

CFtpFileFind::CFtpFileFind

Deze lidfunctie wordt aangeroepen om een CFtpFileFind object te maken.

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

Parameterwaarden

pConnection
Een aanwijzer naar een CFtpConnection object. U kunt een FTP-verbinding verkrijgen door CInternetSession::GetFtpConnection aan te roepen.

dwContext
De context-id voor het CFtpFileFind object. Zie de volgende opmerkingen voor meer informatie.

Opmerkingen

De standaardwaarde voor dwContext wordt door MFC verzonden naar het CFtpFileFind object van het CInternetSession-object dat het CFtpFileFind object heeft gemaakt. U kunt de standaardinstelling overschrijven om de context-id in te stellen op een waarde van uw keuze. De context-id wordt geretourneerd naar CInternetSession::OnStatusCallback om de status op te geven van het object waarmee het wordt geïdentificeerd. Zie het artikel Internet First Steps: WinInet voor meer informatie over de context-id.

Example

Zie het voorbeeld in het klasoverzicht eerder in dit onderwerp.

CFtpFileFind::FindFile

Roep deze lidfunctie aan om een FTP-bestand te vinden.

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

Parameterwaarden

pstrName
Een aanwijzer naar een tekenreeks met de naam van het bestand dat u wilt zoeken. Als NULL is, voert de aanroep een zoekopdracht met jokertekens (*) uit.

dwFlags
De vlaggen die beschrijven hoe deze sessie moet worden verwerkt. Deze vlaggen kunnen worden gecombineerd met de bitsgewijze OR-operator (|) en zijn als volgt:

  • INTERNET_FLAG_RELOAD Haal de gegevens van de kabel op, zelfs als deze lokaal in de cache zijn opgeslagen. Dit is de standaardvlag.

  • INTERNET_FLAG_DONT_CACHE Sla de gegevens niet in de cache op, lokaal of in gateways.

  • INTERNET_FLAG_RAW_DATA Overschrijf de standaardwaarde voor het retourneren van de onbewerkte gegevens ( WIN32_FIND_DATA structuren voor FTP).

  • INTERNET_FLAG_SECURE Beveiligt transacties op de kabel met Secure Sockets Layer of PCT. Deze vlag is alleen van toepassing op HTTP-aanvragen.

  • INTERNET_FLAG_EXISTING_CONNECT Gebruik indien mogelijk de bestaande verbindingen met de server opnieuw voor nieuwe FindFile aanvragen in plaats van een nieuwe sessie te maken voor elke aanvraag.

Retourwaarde

Niet-nul indien geslaagd; anders 0. Als u uitgebreide foutinformatie wilt ophalen, roept u de Win32-functie GetLastError aan.

Opmerkingen

Nadat u hebt aangeroepen FindFile om het eerste FTP-bestand op te halen, kunt u FindNextFile aanroepen om volgende FTP-bestanden op te halen.

Example

Zie het eerdere voorbeeld in dit onderwerp.

CFtpFileFind::FindNextFile

Roep deze lidfunctie aan om door te gaan met een bestandszoekopdracht die is gestart met een aanroep naar de functie FindFile-lid .

virtual BOOL FindNextFile();

Retourwaarde

Niet-nul als er meer bestanden zijn; nul als het gevonden bestand de laatste in de map is of als er een fout is opgetreden. Als u uitgebreide foutinformatie wilt ophalen, roept u de Win32-functie GetLastError aan. Als het gevonden bestand het laatste bestand in de map is of als er geen overeenkomende bestanden kunnen worden gevonden, retourneert de GetLastError functie ERROR_NO_MORE_FILES.

Opmerkingen

U moet deze functie minstens één keer aanroepen voordat u een kenmerkfunctie aanroept (zie CFileFind::FindNextFile).

FindNextFile verpakt de Win32-functie FindNextFile.

Example

Zie het voorbeeld eerder in dit onderwerp.

CFtpFileFind::GetFileURL

Roep deze lidfunctie aan om de URL van het opgegeven bestand op te halen.

CString GetFileURL() const;

Retourwaarde

Het bestand en pad van de Universal Resource Locator (URL).

Opmerkingen

GetFileURL is vergelijkbaar met de lidfunctie CFileFind::GetFilePath , behalve dat deze het resultaat in URL-indeling biedt. Net als bij CFileFind::GetFilePathhet resultaat bevat het resultaat niet de bestandsnaam. Bevindt zich bijvoorbeeld file1.txt in //moose/dir/file1.txt: retourneert ftp://moose/dir/.

Zie ook

CFileFind-klasse
Hiërarchiegrafiek
CGopherFileFind-klasse
CInternetFile-klasse
CGopherFile-klasse
CHttpFile-klasse