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.

Nota O WinINet não dá suporte a implementações de servidor. Além disso, ele não deve ser usado de um serviço. Para implementações de servidor ou serviços, use Os Serviços HTTP do Microsoft Windows (WinHTTP).
 

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

Confira também

Sessões FTP

Funções WinINet