Condividi tramite


Classe CFtpFileFind

Facilita le ricerche di file su Internet dei server FTP.

Sintassi

class CFtpFileFind : public CFileFind

Membri

Costruttori pubblici

Nome Descrizione
CFtpFileFind::CFtpFileFind Costruisce un oggetto CFtpFileFind.

Metodi pubblici

Nome Descrizione
CFtpFileFind::FindFile Trova un file in un server FTP.
CFtpFileFind::FindNextFile Continua una ricerca di file da una chiamata precedente a FindFile.
CFtpFileFind::GetFileURL Ottiene l'URL, incluso il percorso, del file trovato.

Osservazioni:

CFtpFileFind include funzioni membro che iniziano una ricerca, individuano un file e restituiscono l'URL o altre informazioni descrittive sul file.

Altre classi MFC progettate per La ricerca di file locali e Internet includono CGopherFileFind e CFileFind. CFtpFileFindInsieme a , queste classi forniscono un meccanismo semplice per il client per trovare file specifici, indipendentemente dal protocollo del server o dal tipo di file (un computer locale o un server remoto). Non esiste alcuna classe MFC per la ricerca nei server HTTP perché HTTP non supporta la manipolazione diretta dei file necessaria per le ricerche.

Per altre informazioni su come usare CFtpFileFind e le altre classi WinInet, vedere l'articolo Programmazione Internet con WinInet.

Esempio

Il codice seguente illustra come enumerare tutti i file nella directory corrente del server 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;
}

Gerarchia di ereditarietà

CObject

CFileFind

CFtpFileFind

Requisiti

Intestazione: afxinet.h

CFtpFileFind::CFtpFileFind

Questa funzione membro viene chiamata per costruire un CFtpFileFind oggetto .

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

Parametri

pConnection
Puntatore a un oggetto CFtpConnection. È possibile ottenere una connessione FTP chiamando CInternetSession::GetFtpConnection.

dwContext
Identificatore di contesto per l'oggetto CFtpFileFind . Per altre informazioni, vedere le osservazioni seguenti.

Osservazioni:

Il valore predefinito per dwContext viene inviato da MFC all'oggetto dall'oggetto CFtpFileFind CInternetSession che ha creato l'oggetto CFtpFileFind . È possibile eseguire l'override dell'impostazione predefinita per impostare l'identificatore di contesto su un valore scelto. L'identificatore di contesto viene restituito a CInternetSession::OnStatusCallback per fornire lo stato sull'oggetto con cui viene identificato. Per altre informazioni sull'identificatore di contesto, vedere l'articolo Passaggi preliminari su Internet: WinInet .

Esempio

Vedere l'esempio nella panoramica della classe più indietro in questo argomento.

CFtpFileFind::FindFile

Chiamare questa funzione membro per trovare un file FTP.

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

Parametri

pstrName
Puntatore a una stringa contenente il nome del file da trovare. Se NULL, la chiamata eseguirà una ricerca con caratteri jolly (*).

dwFlags
Flag che descrivono come gestire questa sessione. Questi flag possono essere combinati con l'operatore OR bit per bit (|) e sono i seguenti:

  • INTERNET_FLAG_RELOAD Ottenere i dati dal collegamento anche se sono memorizzati nella cache locale. Questo è il flag predefinito.

  • INTERNET_FLAG_DONT_CACHE Non memorizzare nella cache i dati, in locale o in alcun gateway.

  • INTERNET_FLAG_RAW_DATA Eseguire l'override dell'impostazione predefinita per restituire i dati non elaborati ( WIN32_FIND_DATA strutture per FTP).

  • INTERNET_FLAG_SECURE Protegge le transazioni in transito con Secure Sockets Layer o PCT. Questo flag si applica solo alle richieste HTTP.

  • INTERNET_FLAG_EXISTING_CONNECT Se possibile, riutilizzare le connessioni esistenti al server per le nuove FindFile richieste anziché creare una nuova sessione per ogni richiesta.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0. Per ottenere informazioni estese sull'errore, chiamare la funzione Win32 GetLastError.

Osservazioni:

Dopo aver chiamato FindFile per recuperare il primo file FTP, è possibile chiamare FindNextFile per recuperare i file FTP successivi.

Esempio

Vedere l'esempio precedente in questo argomento.

CFtpFileFind::FindNextFile

Chiamare questa funzione membro per continuare una ricerca di file iniziata con una chiamata alla funzione membro FindFile .

virtual BOOL FindNextFile();

Valore restituito

Diverso da zero se sono presenti più file; zero se il file trovato è l'ultimo nella directory o se si è verificato un errore. Per ottenere informazioni estese sull'errore, chiamare la funzione Win32 GetLastError. Se il file trovato è l'ultimo file nella directory o se non è possibile trovare file corrispondenti, la GetLastError funzione restituisce ERROR_NO_MORE_FILES.

Osservazioni:

È necessario chiamare questa funzione almeno una volta prima di chiamare qualsiasi funzione di attributo (vedere CFileFind::FindNextFile).

FindNextFile esegue il wrapping della funzione Win32 FindNextFile.

Esempio

Vedere l'esempio precedente in questo argomento.

CFtpFileFind::GetFileURL

Chiamare questa funzione membro per ottenere l'URL del file specificato.

CString GetFileURL() const;

Valore restituito

Il file e il percorso dell'URL (Universal Resource Locator).

Osservazioni:

GetFileURL è simile alla funzione membro CFileFind::GetFilePath , ad eccezione del fatto che fornisce il risultato in formato URL. Come con CFileFind::GetFilePath, il risultato non include il nome file. Ad esempio, file1.txt che si trova in //moose/dir/file1.txt: restituisce ftp://moose/dir/.

Vedi anche

Classe CFileFind
Grafico della gerarchia
Classe CGopherFileFind
Classe CInternetFile
Classe CGopherFile
Classe CHttpFile