Condividi tramite


Funzione FtpOpenFileA (wininet.h)

Avvia l'accesso a un file remoto in un server FTP per la lettura o la scrittura.

Sintassi

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

Parametri

[in] hConnect

Gestire in una sessione FTP.

[in] lpszFileName

Puntatore a una stringa con terminazione null che contiene il nome del file a cui accedere.

[in] dwAccess

Accesso ai file. Questo parametro può essere GENERIC_READ o GENERIC_WRITE, ma non entrambi.

[in] dwFlags

Condizioni in cui si verificano i trasferimenti. L'applicazione deve selezionare un tipo di trasferimento e uno dei flag che indicano come verrà controllata la memorizzazione nella cache del file.

Il tipo di trasferimento può essere uno dei valori seguenti.

Valore Significato
FTP_TRANSFER_TYPE_ASCII
Trasferisce il file usando il metodo di trasferimento ASCII (Type A) di FTP. Le informazioni di controllo e formattazione vengono convertite in equivalenti locali.
FTP_TRANSFER_TYPE_BINARY
Trasferisce il file usando il metodo di trasferimento Image (Type I) di FTP. Il file viene trasferito esattamente come esiste senza modifiche. Si tratta del metodo di trasferimento predefinito.
FTP_TRANSFER_TYPE_UNKNOWN
Impostazione predefinita per FTP_TRANSFER_TYPE_BINARY.
INTERNET_FLAG_TRANSFER_ASCII
Trasferisce il file come ASCII.
INTERNET_FLAG_TRANSFER_BINARY
Trasferisce il file come binario.
 

I valori seguenti vengono usati per controllare la memorizzazione nella cache del file. L'applicazione può usare uno o più di questi valori.

Valore Significato
INTERNET_FLAG_HYPERLINK
Forza un ricaricamento se non era presente un'ora di scadenza e nessun tempo LastModified restituito dal server quando determina se ricaricare l'elemento dalla rete.
INTERNET_FLAG_NEED_FILE
Causa la creazione di un file temporaneo se il file non può essere memorizzato nella cache.
INTERNET_FLAG_RELOAD
Impone un download del file, dell'oggetto o dell'elenco di directory richiesto dal server di origine e non dalla cache.
INTERNET_FLAG_RESYNCHRONIZE
Ricarica le risorse HTTP se la risorsa è stata modificata dall'ultima volta che è stata scaricata. Tutte le risorse FTP vengono ricaricate.

Windows XP e Windows Server 2003 R2 e versioni precedenti: Vengono ricaricate anche le risorse gopher.

[in] dwContext

Puntatore a una variabile contenente il valore definito dall'applicazione che associa questa ricerca a tutti i dati dell'applicazione. Questa operazione viene usata solo se l'applicazione ha già chiamato InternetSetStatusCallback per configurare una funzione di callback dello stato.

Valore restituito

Restituisce un handle se ha esito positivo o NULL in caso contrario. Per recuperare un messaggio di errore specifico, chiamare GetLastError.

Commenti

Dopo aver chiamato FtpOpenFile e finché non si chiama InternetCloseHandle, tutte le altre chiamate a funzioni FTP nello stesso handle di sessione FTP avranno esito negativo e impostano il messaggio di errore su ERROR_FTP_TRANSFER_IN_PROGRESS. Al termine dell'applicazione chiamante, l'handle HINTERNET restituito da FtpOpenFile deve essere chiuso usando la funzione InternetCloseHandle .

È possibile aprire un solo file in una singola sessione FTP. Pertanto, nessun handle di file viene restituito e l'applicazione usa semplicemente l'handle di sessione FTP quando necessario.

Il parametro lpszFileName può essere un nome file parzialmente o completo rispetto alla directory corrente.

Come tutti gli altri aspetti dell'API WinINet, questa funzione non può essere chiamata in modo sicuro dall'interno di DllMain o dai costruttori e distruttori degli oggetti globali.

Nota WinINet non supporta le implementazioni del server. Inoltre, non deve essere usato da un servizio. Per le implementazioni o i servizi server usano Microsoft Windows HTTP Services (WinHTTP).
 

Nota

L'intestazione wininet.h definisce FtpOpenFile come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione wininet.h
Libreria Wininet.lib
DLL Wininet.dll

Vedi anche

Sessioni FTP

Funzioni WinINet