Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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
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_RELOADObtém os dados do fio mesmo que estejam em cache local. Esta é a bandeira padrão.INTERNET_FLAG_DONT_CACHENão armazene os dados em cache, nem localmente nem em gateways.INTERNET_FLAG_RAW_DATASobrepor o padrão para devolver os dados brutos ( WIN32_FIND_DATA estruturas para FTP).INTERNET_FLAG_SECUREAssegura transações na transferência com Secure Sockets Layer ou PCT. Este flag aplica-se apenas a pedidos HTTP.INTERNET_FLAG_EXISTING_CONNECTSe possível, reutilize as ligações existentes ao servidor para novosFindFilepedidos 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