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

Controlar a 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, ftpGetFile produce un error.

[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 controlará la descarga de archivos la función. 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 la lista de directorios solicitados desde el servidor de origen, no desde la memoria caché.
INTERNET_FLAG_RESYNCHRONIZE
Recarga los recursos HTTP si el recurso se ha modificado desde la última vez que se descargó. Todos los recursos FTP se vuelven a cargar.

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

[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.

Observaciones

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 lo almacena localmente. Una aplicación que solo necesita recuperar datos de archivo o que requiera un control cercano sobre la transferencia de archivos debe usar las funciones ftpOpenFile de y InternetReadFile.

Si el parámetro dwFlags especifica FTP_TRANSFER_TYPE_ASCII, la traducción de los datos del archivo convierte el control y los caracteres de 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 y lpszNewFile pueden ser nombres de archivo parcialmente o completos 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 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 neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.

Requisitos

Requisito Valor
cliente mínimo admitido Windows 2000 Professional [solo aplicaciones de escritorio]
servidor mínimo admitido Windows 2000 Server [solo aplicaciones de escritorio]
de la plataforma de destino de Windows
encabezado de wininet.h
biblioteca de Wininet.lib
DLL de Wininet.dll

Consulte también

sesiones FTP de

funciones winINet