Función FtpOpenFileA (wininet.h)

Inicia el acceso a un archivo remoto en un servidor FTP para leer o escribir.

Sintaxis

HINTERNET FtpOpenFileA(
  [in] HINTERNET hConnect,
  [in] LPCSTR    lpszFileName,
  [in] DWORD     dwAccess,
  [in] DWORD     dwFlags,
  [in] DWORD_PTR dwContext
);

Parámetros

[in] hConnect

Identificador de una sesión ftp.

[in] lpszFileName

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

[in] dwAccess

Acceso a archivos. Este parámetro puede ser GENERIC_READ o GENERIC_WRITE, pero no ambos.

[in] dwFlags

Condiciones en las que se producen las transferencias. La aplicación debe seleccionar un tipo de transferencia y cualquiera de las marcas que indican cómo se controlará el almacenamiento en caché del archivo.

El tipo de transferencia puede ser uno de los valores siguientes.

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

Los valores siguientes se usan para controlar el almacenamiento en caché del archivo. La aplicación puede usar uno o varios de estos valores.

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 un identificador si se ejecuta correctamente o NULL de lo contrario. Para recuperar un mensaje de error específico, llame a GetLastError.

Comentarios

Después de llamar a FtpOpenFile y hasta que llame a InternetCloseHandle, todas las demás llamadas a funciones FTP en el mismo identificador de sesión ftp producirán un error y establecerán el mensaje de error en ERROR_FTP_TRANSFER_IN_PROGRESS. Después de que la aplicación que realiza la llamada haya terminado de usar el identificador HINTERNET devuelto por FtpOpenFile, debe cerrarse mediante la función InternetCloseHandle .

Solo se puede abrir un archivo en una sola sesión FTP. Por lo tanto, no se devuelve ningún identificador de archivo y la aplicación simplemente usa el identificador de sesión FTP cuando sea necesario.

El parámetro lpszFileName puede ser un nombre de archivo completo o parcial con respecto al 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 FtpOpenFile 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 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