Partilhar via


Classe CFtpFileFind

Observação

A biblioteca Microsoft Foundation Classes (MFC) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.

Ajuda na pesquisa de ficheiros na Internet de servidores FTP.

Sintaxe

class CFtpFileFind : public CFileFind

Membros

Construtores Públicos

Nome Description
CFtpFileFind::CFtpFileFind Constrói um CFtpFileFind objeto.

Métodos Públicos

Nome Description
CFtpFileFind::FindFile Encontra um ficheiro num servidor FTP.
CFtpFileFind::FindNextFile Continua a pesquisa de ficheiros de uma chamada anterior para o FindFile.
CFtpFileFind::GetFileURL Obtém o URL, incluindo o caminho, do ficheiro encontrado.

Observações

CFtpFileFind inclui funções membros que iniciam uma pesquisa, localizam um ficheiro e devolvem a URL ou outra informação descritiva sobre o ficheiro.

Outras classes MFC concebidas para pesquisa na Internet e em ficheiros locais incluem CGopherFileFind e CFileFind. Juntamente com CFtpFileFind, estas classes fornecem um mecanismo contínuo para o cliente encontrar ficheiros específicos, independentemente do protocolo do servidor ou tipo de ficheiro (seja uma máquina local ou um servidor remoto). Não existe uma classe MFC para pesquisas em servidores HTTP porque HTTP não suporta a manipulação direta de ficheiros necessária para pesquisas.

Para mais informações sobre como usar CFtpFileFind e as outras classes WinInet, consulte o artigo Programação na Internet com WinInet.

Example

O código seguinte demonstra como enumerar todos os ficheiros no diretório atual do servidor 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;
}

Hierarquia de herança

CObject

CFileFind

CFtpFileFind

Requerimentos

Cabeçalho: afxinet.h

CFtpFileFind::CFtpFileFind

Esta função membro é chamada para construir um CFtpFileFind objeto.

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

Parâmetros

pConnection
Um ponteiro para um CFtpConnection objeto. Pode obter uma ligação FTP ligando para CInternetSession::GetFtpConnection.

dwContext
O identificador de contexto para o CFtpFileFind objeto. Para mais informações, consulte as seguintes observações.

Observações

O valor padrão do dwContext é enviado pelo MFC para o CFtpFileFind objeto a partir do objeto CInternetSession que criou o CFtpFileFind objeto. Podes sobrescrever o valor padrão para definir o identificador de contexto para um valor que escolheres. O identificador de contexto é devolvido ao CInternetSession::OnStatusCallback para fornecer o estado do objeto com o qual está identificado. Consulte o artigo Internet First Steps: WinInet para mais informações sobre o identificador de contexto.

Example

Veja o exemplo na visão geral da aula mais cedo neste tópico.

CFtpFileFind::FindFile

Chame esta função membro para encontrar um ficheiro FTP.

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

Parâmetros

pstrName
Um ponteiro para uma string contendo o nome do ficheiro a encontrar. Se for NULL, a chamada fará uma pesquisa coringa (*).

dwBandeiras
As bandeiras que descrevem como lidar com esta sessão. Estas flags podem ser combinadas com o operador OR bit a bit (|) e são as seguintes:

  • INTERNET_FLAG_RELOAD Obtém os dados do fio mesmo que estejam em cache local. Esta é a bandeira padrão.

  • INTERNET_FLAG_DONT_CACHE Não armazene os dados em cache, nem localmente nem em gateways.

  • INTERNET_FLAG_RAW_DATA Sobrepor o padrão para devolver os dados brutos ( WIN32_FIND_DATA estruturas para FTP).

  • INTERNET_FLAG_SECURE Assegura transações na transferência com Secure Sockets Layer ou PCT. Este flag aplica-se apenas a pedidos HTTP.

  • INTERNET_FLAG_EXISTING_CONNECT Se possível, reutilize as ligações existentes ao servidor para novos FindFile pedidos em vez de criar uma nova sessão para cada pedido.

Valor de retorno

Não nulo se for bem-sucedido; caso contrário, 0. Para obter informação de erro alargada, chame a função Win32 GetLastError.

Observações

Depois de chamar FindFile para recuperar o primeiro ficheiro FTP, pode chamar o FindNextFile para recuperar os ficheiros FTP subsequentes.

Example

Veja o exemplo anterior neste tópico.

CFtpFileFind::FindNextFile

Chame esta função membro para continuar uma pesquisa de ficheiros iniciada com uma chamada à função membro FindFile .

virtual BOOL FindNextFile();

Valor de retorno

Não nulo se houver mais ficheiros; zero se o ficheiro encontrado for o último no diretório ou se ocorreu um erro. Para obter informação de erro alargada, chame a função Win32 GetLastError. Se o ficheiro encontrado for o último no diretório, ou se não forem encontrados ficheiros correspondentes, a GetLastError função devolve ERROR_NO_MORE_FILES.

Observações

Deve chamar esta função pelo menos uma vez antes de chamar qualquer função de atributo (veja CFileFind::FindNextFile).

FindNextFile envolve a função FindNextFile do Win32.

Example

Veja o exemplo anterior neste tópico.

CFtpFileFind::GetFileURL

Chame esta função membro para obter a URL do ficheiro especificado.

CString GetFileURL() const;

Valor de retorno

O ficheiro e o caminho do Universal Resource Locator (URL).

Observações

GetFileURL é semelhante à função membro CFileFind::GetFilePath , exceto que fornece o resultado em formato URL. Tal como em CFileFind::GetFilePath, o resultado não inclui o nome do ficheiro. Por exemplo, file1.txt localizado em //moose/dir/file1.txt: retorna ftp://moose/dir/.

Consulte também

Classe CFileFind
Gráfico de Hierarquia
Classe CGopherFileFind
Classe CInternetFile
Classe CGopherFile
Classe CHttpFile