CFtpFileFind-Klasse

Unterstützt die Internetsuche nach Dateien auf FTP-Servern.

Syntax

class CFtpFileFind : public CFileFind

Member

Öffentliche Konstruktoren

Name Beschreibung
CFtpFileFind::CFtpFileFind Erstellt ein CFtpFileFind-Objekt.

Öffentliche Methoden

Name Beschreibung
CFtpFileFind::FindFile Sucht eine Datei auf einem FTP-Server.
CFtpFileFind::FindNextFile Setzt eine Dateisuche aus einem vorherigen Aufruf von FindFile fort.
CFtpFileFind::GetFileURL Ruft die URL einschließlich Pfad der gefundenen Datei ab.

Hinweise

CFtpFileFind enthält Memberfunktionen, die eine Suche beginnen, eine Datei suchen und die URL oder andere beschreibende Informationen zur Datei zurückgeben.

Andere MFC-Klassen, die für internet- und lokale Dateien durchsucht wurden, sind CGopherFileFind und CFileFind. Zusammen mit CFtpFileFinddiesen Klassen bieten diese Klassen einen nahtlosen Mechanismus für den Client, um bestimmte Dateien zu finden, unabhängig vom Serverprotokoll oder Dateityp (entweder einem lokalen Computer oder einem Remoteserver). Es gibt keine MFC-Klasse für die Suche auf HTTP-Servern, da HTTP die für Suchvorgänge erforderliche direkte Dateimanipulation nicht unterstützt.

Weitere Informationen zur Verwendung CFtpFileFind und zu den anderen WinInet-Klassen finden Sie im Artikel "Internet Programming with WinInet".

Beispiel

Der folgende Code veranschaulicht, wie alle Dateien im aktuellen Verzeichnis des FTP-Servers aufgelistet werden.

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

Vererbungshierarchie

CObject

CFileFind

CFtpFileFind

Anforderungen

Kopfzeile: afxinet.h

CFtpFileFind::CFtpFileFind

Diese Memberfunktion wird aufgerufen, um ein CFtpFileFind Objekt zu erstellen.

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

Parameter

pConnection
Ein Zeiger auf ein CFtpConnection-Objekt. Sie können eine FTP-Verbindung abrufen, indem Sie CInternetSession::GetFtpConnection aufrufen.

dwContext
Der Kontextbezeichner für das CFtpFileFind Objekt. Weitere Informationen finden Sie in den folgenden Hinweisen.

Hinweise

Der Standardwert für dwContext wird von MFC an das CFtpFileFind Objekt aus dem CInternetSession-Objekt gesendet, das das CFtpFileFind Objekt erstellt hat. Sie können den Standardwert überschreiben, um den Kontextbezeichner auf einen Wert Ihrer Wahl festzulegen. Der Kontextbezeichner wird an CInternetSession::OnStatusCallback zurückgegeben, um den Status für das Objekt bereitzustellen, mit dem er identifiziert wird. Weitere Informationen zum Kontextbezeichner finden Sie im Artikel "Internet First Steps: WinInet ".

Beispiel

Weitere Informationen finden Sie im Beispiel in der Klassenübersicht weiter oben in diesem Thema.

CFtpFileFind::FindFile

Rufen Sie diese Memberfunktion auf, um eine FTP-Datei zu finden.

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

Parameter

pstrName
Ein Zeiger auf eine Zeichenfolge, die den Namen der zu suchenden Datei enthält. Wenn NULL, führt der Aufruf eine Platzhaltersuche (*) durch.

dwFlags
Die Flags, die beschreiben, wie diese Sitzung behandelt wird. Diese Flags können mit dem bitweisen OR-Operator (|) kombiniert werden und sind wie folgt:

  • INTERNET_FLAG_RELOAD Rufen Sie die Daten aus der Verbindung ab, auch wenn sie lokal zwischengespeichert ist. Dies ist die Standardkennzeichnung.

  • INTERNET_FLAG_DONT_CACHE Speichern Sie die Daten weder lokal noch in Gateways zwischen.

  • INTERNET_FLAG_RAW_DATA Überschreiben Sie die Standardeinstellung, um die Rohdaten ( WIN32_FIND_DATA Strukturen für FTP) zurückzugeben.

  • INTERNET_FLAG_SECURE Sichert Transaktionen über das Kabel mit Secure Sockets Layer oder PCT. Dieses Flag gilt nur für HTTP-Anforderungen.

  • INTERNET_FLAG_EXISTING_CONNECT Verwenden Sie nach Möglichkeit die vorhandenen Verbindungen mit dem Server für neue FindFile Anforderungen, anstatt für jede Anforderung eine neue Sitzung zu erstellen.

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null). Rufen Sie zum Abrufen erweiterter Fehlerinformationen die Win32-Funktion GetLastError auf.

Hinweise

FindFile Nachdem Sie die erste FTP-Datei abgerufen haben, können Sie FindNextFile aufrufen, um nachfolgende FTP-Dateien abzurufen.

Beispiel

Weitere Informationen finden Sie im vorherigen Beispiel in diesem Thema.

CFtpFileFind::FindNextFile

Rufen Sie diese Memberfunktion auf, um eine Dateisuche fortzusetzen, die mit einem Aufruf der FindFile-Memberfunktion begonnen hat.

virtual BOOL FindNextFile();

Rückgabewert

Nonzero, wenn mehr Dateien vorhanden sind; null, wenn die gefundene Datei die letzte im Verzeichnis ist oder wenn ein Fehler aufgetreten ist. Rufen Sie zum Abrufen erweiterter Fehlerinformationen die Win32-Funktion GetLastError auf. Wenn es sich bei der gefundenen Datei um die letzte Datei im Verzeichnis handelt oder wenn keine übereinstimmenden Dateien gefunden werden, gibt die GetLastError Funktion ERROR_NO_MORE_FILES zurück.

Hinweise

Sie müssen diese Funktion mindestens einmal aufrufen, bevor Sie eine Attributfunktion aufrufen (siehe CFileFind::FindNextFile).

FindNextFile umschließt die Win32-Funktion FindNextFile.

Beispiel

Weitere Informationen finden Sie weiter oben in diesem Thema.

CFtpFileFind::GetFileURL

Rufen Sie diese Memberfunktion auf, um die URL der angegebenen Datei abzurufen.

CString GetFileURL() const;

Rückgabewert

Die Datei und der Pfad des Url (Universal Resource Locator).

Hinweise

GetFileURL ähnelt der Memberfunktion "CFileFind::GetFilePath ", mit der Ausnahme, dass sie das Ergebnis im URL-Format bereitstellt. Wie bei CFileFind::GetFilePathdiesem Ergebnis enthält das Ergebnis nicht den Dateinamen. Beispiel: file1.txt Befindet sich in //moose/dir/file1.txt: Rückgaben ftp://moose/dir/.

Siehe auch

CFileFind-Klasse
Hierarchiediagramm
CGopherFileFind-Klasse
CInternetFile-Klasse
CGopherFile-Klasse
CHttpFile-Klasse