Función FtpFindFirstFileA (wininet.h)

Busca en el directorio especificado de la sesión FTP especificada. Las entradas de archivo y directorio se devuelven a la aplicación en la estructura WIN32_FIND_DATA .

Sintaxis

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 de una sesión FTP devuelta desde InternetConnect.

[in] lpszSearchFile

Puntero a una cadena terminada en null que especifica una ruta de acceso de directorio o un nombre de archivo válidos para el sistema de archivos del servidor FTP. La cadena puede contener caracteres comodín, pero no se permiten espacios en blanco. Si el valor de lpszSearchFile es NULL o si es una cadena vacía, la función busca el primer archivo en el directorio actual del servidor.

[out] lpFindFileData

Puntero a una estructura de WIN32_FIND_DATA que recibe información sobre el archivo o directorio encontrados.

[in] dwFlags

Controla el comportamiento de esta función. Este parámetro puede ser una combinación de los valores siguientes.

INTERNET_FLAG_HYPERLINK

INTERNET_FLAG_NEED_FILE

INTERNET_FLAG_NO_CACHE_WRITE

INTERNET_FLAG_RELOAD

INTERNET_FLAG_RESYNCHRONIZE

[in] dwContext

Puntero a una variable que especifica el valor definido por la aplicación que asocia esta búsqueda a los datos de la aplicación. Este parámetro solo se usa si la aplicación ya ha llamado a InternetSetStatusCallback para configurar una función de devolución de llamada de estado.

Valor devuelto

Devuelve un identificador válido para la solicitud si la enumeración de directorios se inició correctamente o devuelve NULL en caso contrario. Para obtener un mensaje de error específico, llame a GetLastError. Si GetLastError devuelve ERROR_INTERNET_EXTENDED_ERROR, como en el caso de que la función no encuentre archivos coincidentes, llame a la función InternetGetLastResponseInfo para recuperar el texto de error extendido, como se documenta en Control de errores.

Comentarios

Para FtpFindFirstFile, las horas de archivo devueltas en la estructura de WIN32_FIND_DATA se encuentran en la zona horaria local, no en un formato de hora universal coordinada (UTC).

FtpFindFirstFile es similar a la función FindFirstFile . Sin embargo, tenga en cuenta que solo se puede producir un ftpFindFirstFile a la vez dentro de una sesión FTP determinada. Las enumeraciones, por lo tanto, se correlacionan con el identificador de sesión FTP. Esto se debe a que el protocolo FTP solo permite una enumeración de directorio única por sesión.

Después de llamar a FtpFindFirstFile y hasta que llame a InternetCloseHandle, la aplicación no puede volver a llamar a FtpFindFirstFile en el identificador de sesión FTP determinado. Si se realiza una llamada a FtpFindFirstFile en ese identificador, se produce un error en la función con ERROR_FTP_TRANSFER_IN_PROGRESS. Una vez finalizada la aplicación que realiza la llamada mediante el identificador HINTERNET devuelto por FtpFindFirstFile, debe cerrarse mediante la función InternetCloseHandle .

Después de iniciar una enumeración de directorio con FtpFindFirstFile, se puede usar la función InternetFindNextFile para continuar con la enumeración.

Dado que el protocolo FTP no proporciona ningún medio estándar de enumeración, parte de la información común sobre los archivos, como la fecha y hora de creación de archivos, no siempre está disponible o correcto. Cuando esto sucede, FtpFindFirstFile e InternetFindNextFile rellenan información no disponible con una mejor estimación en función de la información disponible. Por ejemplo, las fechas de creación y último acceso suelen ser las mismas que la fecha de modificación del archivo.

La aplicación no puede llamar a FtpFindFirstFile entre llamadas a FtpOpenFile e InternetCloseHandle.

Al igual que todos los demás aspectos de la API de WinINet, esta función no se puede llamar de forma segura desde DllMain ni desde los constructores y destructores de objetos globales.

Nota WinINet no admite implementaciones de servidor. Además, no se debe usar desde un servicio. En el caso de las implementaciones de servidor o los servicios, use los servicios HTTP de Microsoft Windows (WinHTTP).
 

Nota

El encabezado wininet.h define FtpFindFirstFile como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado wininet.h
Library Wininet.lib
Archivo DLL Wininet.dll

Consulte también

Sesiones FTP

Funciones de WinINet