Compartir a través de


Función FtpGetFileA (wininet.h)

Recupera un archivo del servidor FTP y lo almacena bajo el nombre de archivo especificado, creando un nuevo archivo local en el proceso.

Sintaxis

BOOL FtpGetFileA(
  [in] HINTERNET hConnect,
  [in] LPCSTR    lpszRemoteFile,
  [in] LPCSTR    lpszNewFile,
  [in] BOOL      fFailIfExists,
  [in] DWORD     dwFlagsAndAttributes,
  [in] DWORD     dwFlags,
  [in] DWORD_PTR dwContext
);

Parámetros

[in] hConnect

Identificador de una sesión FTP.

[in] lpszRemoteFile

Puntero a una cadena terminada en null que contiene el nombre del archivo que se va a recuperar.

[in] lpszNewFile

Puntero a una cadena terminada en null que contiene el nombre del archivo que se va a crear en el sistema local.

[in] fFailIfExists

Indica si la función debe continuar si ya existe un archivo local del nombre especificado. Si fFailIfExists es TRUE y el archivo local existe, se produce un error en FtpGetFile .

[in] dwFlagsAndAttributes

Atributos de archivo para el nuevo archivo. Este parámetro puede ser cualquier combinación de las marcas FILE_ATTRIBUTE_* usadas por la función CreateFile .

[in] dwFlags

Controla cómo la función controlará la descarga de archivos. El primer conjunto de valores de marca indica las condiciones en las que se produce la transferencia. Estas marcas de tipo de transferencia se pueden usar en combinación con el segundo conjunto de marcas que controlan el almacenamiento en caché.

La aplicación puede seleccionar uno de estos valores de tipo de transferencia.

Valor Significado
FTP_TRANSFER_TYPE_ASCII
Transfiere el archivo mediante el método de transferencia ASCII (tipo A) de FTP. La información de control y formato se convierte en equivalentes locales.
FTP_TRANSFER_TYPE_BINARY
Transfiere el archivo mediante el método de transferencia imagen (tipo I) de FTP. El archivo se transfiere exactamente como existe sin cambios. Este es el método de transferencia predeterminado.
FTP_TRANSFER_TYPE_UNKNOWN
El valor predeterminado es FTP_TRANSFER_TYPE_BINARY.
INTERNET_FLAG_TRANSFER_ASCII
Transfiere el archivo como ASCII.
INTERNET_FLAG_TRANSFER_BINARY
Transfiere el archivo como binario.
 

Las marcas siguientes determinan cómo se realizará el almacenamiento en caché de este archivo. Cualquier combinación de las marcas siguientes se puede usar con la marca de tipo de transferencia.

Valor Significado
INTERNET_FLAG_HYPERLINK
Fuerza una recarga si no había ninguna hora de expiración y no se devolvió la hora LastModified del servidor al determinar si se debe volver a cargar el elemento de la red.
INTERNET_FLAG_NEED_FILE
Hace que se cree un archivo temporal si el archivo no se puede almacenar en caché.
INTERNET_FLAG_RELOAD
Fuerza una descarga del archivo, el objeto o el listado de directorio solicitado del servidor de origen, no de la memoria caché.
INTERNET_FLAG_RESYNCHRONIZE
Vuelve a cargar los recursos HTTP si el recurso se ha modificado desde la última vez que se descargó. Se vuelven a cargar todos los recursos FTP.

Windows XP y Windows Server 2003 R2 y versiones anteriores: Los recursos de Gopher también se vuelven a cargar.

[in] dwContext

Puntero a una variable que contiene el valor definido por la aplicación que asocia esta búsqueda a los datos de la aplicación. Esto 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 TRUE si se ejecuta correctamente o FALSE de lo contrario. Para obtener un mensaje de error específico, llame a GetLastError.

Comentarios

FtpGetFile es una rutina de alto nivel que controla todo el mantenimiento y la sobrecarga asociados con la lectura de un archivo desde un servidor FTP y almacenarlo localmente. Una aplicación que necesita recuperar datos de archivo solo o que requiere un control cercano sobre la transferencia de archivos debe usar las funciones FtpOpenFile e InternetReadFile .

Si el parámetro dwFlags especifica FTP_TRANSFER_TYPE_ASCII, la traducción de los datos del archivo convierte los caracteres de control y formato en equivalentes locales. La transferencia predeterminada es el modo binario, donde el archivo se descarga en el mismo formato que se almacena en el servidor.

Tanto lpszRemoteFile como lpszNewFile pueden ser nombres de archivo completos o parciales en relación con el directorio actual.

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 FtpGetFile 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