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

Handle in una sessione FTP.

[in] lpszFileName

Puntatore a una stringa con terminazione Null contenente 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 base alle quali 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) 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) ftp. Il file viene trasferito esattamente come esiste senza modifiche. Si tratta del metodo di trasferimento predefinito.
FTP_TRANSFER_TYPE_UNKNOWN
Il valore predefinito è 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 è presente un'ora di scadenza e non viene restituito alcun tempo LastModified dal server per determinare se ricaricare l'elemento dalla rete.
INTERNET_FLAG_NEED_FILE
Determina la creazione di un file temporaneo se il file non può essere memorizzato nella cache.
INTERNET_FLAG_RELOAD
Forza un download del file, dell'oggetto o dell'elenco di directory richiesto dal server di origine, 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.

anche le risorse di Windows XP e Windows Server 2003 R2 e versioni precedenti: vengono ricaricate anche le risorse di Gopher .

[in] dwContext

Puntatore a una variabile che contiene il valore definito dall'applicazione che associa la ricerca a tutti i dati dell'applicazione. Viene usato solo se l'applicazione ha già chiamato InternetSetStatusCallback per configurare una funzione di callback di stato.

Valore restituito

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

Osservazioni

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

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

Il parametro lpszFileName può essere un nome di 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 di oggetti globali.

Nota WinINet non supporta le implementazioni del server. Inoltre, non deve essere usato da un servizio. Per le implementazioni del server o i servizi, usare Servizi HTTP Di Microsoft Windows (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 del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Fabbisogno

Requisito Valore
client minimo supportato Windows 2000 Professional [solo app desktop]
server minimo supportato Windows 2000 Server [solo app desktop]
piattaforma di destinazione Finestre
intestazione wininet.h
libreria Wininet.lib
dll Wininet.dll

Vedere anche

sessioni FTP

funzioni WinINet