Função FtpFindFirstFileA (wininet.h)
Pesquisa o diretório especificado da sessão FTP fornecida. Entradas de arquivo e diretório são retornadas ao aplicativo na estrutura WIN32_FIND_DATA .
Sintaxe
HINTERNET FtpFindFirstFileA(
[in] HINTERNET hConnect,
[in] LPCSTR lpszSearchFile,
[out] LPWIN32_FIND_DATAA lpFindFileData,
[in] DWORD dwFlags,
[in] DWORD_PTR dwContext
);
Parâmetros
[in] hConnect
Identificador para uma sessão FTP retornada de InternetConnect.
[in] lpszSearchFile
Ponteiro para uma cadeia de caracteres terminada em nulo que especifica um caminho de diretório válido ou um nome de arquivo para o sistema de arquivos do servidor FTP. A cadeia de caracteres pode conter caracteres curinga, mas nenhum espaço em branco é permitido. Se o valor de lpszSearchFile for NULL ou se for uma cadeia de caracteres vazia, a função encontrará o primeiro arquivo no diretório atual no servidor.
[out] lpFindFileData
Ponteiro para uma estrutura WIN32_FIND_DATA que recebe informações sobre o arquivo ou diretório encontrado.
[in] dwFlags
Controla o comportamento dessa função. Esse parâmetro pode ser uma combinação dos seguintes valores.
INTERNET_FLAG_HYPERLINK
INTERNET_FLAG_NEED_FILE
INTERNET_FLAG_NO_CACHE_WRITE
INTERNET_FLAG_RELOAD
INTERNET_FLAG_RESYNCHRONIZE
[in] dwContext
Ponteiro para uma variável que especifica o valor definido pelo aplicativo que associa essa pesquisa a todos os dados do aplicativo. Esse parâmetro será usado somente se o aplicativo já tiver chamado InternetSetStatusCallback para configurar uma função de retorno de chamada status.
Retornar valor
Retorna um identificador válido para a solicitação se a enumeração de diretório foi iniciada com êxito ou retorna NULL caso contrário. Para obter uma mensagem de erro específica, chame GetLastError. Se GetLastError retornar ERROR_INTERNET_EXTENDED_ERROR, como no caso em que a função não encontrar arquivos correspondentes, chame a função InternetGetLastResponseInfo para recuperar o texto de erro estendido, conforme documentado em Tratamento de Erros.
Comentários
Para FtpFindFirstFile, os tempos de arquivo retornados na estrutura WIN32_FIND_DATA estão no fuso horário local, não em um formato UTC (tempo universal coordenado).
FtpFindFirstFile é semelhante à função FindFirstFile . No entanto, observe que apenas um FtpFindFirstFile pode ocorrer de cada vez em uma determinada sessão FTP. As enumerações, portanto, estão correlacionadas com o identificador de sessão FTP. Isso ocorre porque o protocolo FTP permite apenas uma enumeração de diretório por sessão.
Depois de chamar FtpFindFirstFile e até chamar InternetCloseHandle, o aplicativo não poderá chamar FtpFindFirstFile novamente no identificador de sessão FTP especificado. Se uma chamada for feita para FtpFindFirstFile nesse identificador , a função falhará com ERROR_FTP_TRANSFER_IN_PROGRESS. Depois que o aplicativo de chamada terminar de usar o identificador HINTERNET retornado por FtpFindFirstFile, ele deverá ser fechado usando a função InternetCloseHandle .
Depois de iniciar uma enumeração de diretório com FtpFindFirstFile, a função InternetFindNextFile pode ser usada para continuar a enumeração.
Como o protocolo FTP não fornece meios padrão de enumeração, algumas das informações comuns sobre arquivos, como data e hora de criação de arquivo, nem sempre estão disponíveis ou estão corretas. Quando isso acontece, FtpFindFirstFile e InternetFindNextFile preenchem informações indisponíveis com uma melhor suposição com base nas informações disponíveis. Por exemplo, as datas de criação e último acesso geralmente são as mesmas que a data de modificação do arquivo.
O aplicativo não pode chamar FtpFindFirstFile entre chamadas para FtpOpenFile e InternetCloseHandle.
Como todos os outros aspectos da API WinINet, essa função não pode ser chamada com segurança de dentro de DllMain ou dos construtores e destruidores de objetos globais.
Observação
O cabeçalho wininet.h define FtpFindFirstFile como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows 2000 Server [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | wininet.h |
Biblioteca | Wininet.lib |
DLL | Wininet.dll |