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 CFtpFileFind
diesen 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
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 neueFindFile
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::GetFilePath
diesem 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