Condividi tramite


Funzione FtpGetFileA (wininet.h)

Recupera un file dal server FTP e lo archivia sotto il nome del file specificato, creando un nuovo file locale nel processo.

Sintassi

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

Parametri

[in] hConnect

Gestire in una sessione FTP.

[in] lpszRemoteFile

Puntatore a una stringa con terminazione null contenente il nome del file da recuperare.

[in] lpszNewFile

Puntatore a una stringa con terminazione null contenente il nome del file da creare nel sistema locale.

[in] fFailIfExists

Indica se la funzione deve procedere se esiste già un file locale del nome specificato. Se fFailIfExists è TRUE e il file locale esiste, FtpGetFile ha esito negativo.

[in] dwFlagsAndAttributes

Attributi di file per il nuovo file. Questo parametro può essere una combinazione dei flag di FILE_ATTRIBUTE_* usati dalla funzione CreateFile .

[in] dwFlags

Controlla il modo in cui la funzione gestirà il download del file. Il primo set di valori del flag indica le condizioni in cui si verifica il trasferimento. Questi flag di tipo di trasferimento possono essere usati in combinazione con il secondo set di flag che controllano la memorizzazione nella cache.

L'applicazione può selezionare uno di questi valori di tipo di trasferimento.

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 flag seguenti determinano il modo in cui verrà eseguita la memorizzazione nella cache di questo file. Qualsiasi combinazione dei flag seguenti può essere usata con il flag di tipo di trasferimento.

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. Viene usato solo se l'applicazione ha già chiamato InternetSetStatusCallback per configurare una funzione di callback di stato.

Valore restituito

Restituisce TRUE se ha esito positivo o FALSE in caso contrario. Per ottenere un messaggio di errore specifico, chiamare GetLastError.

Commenti

FtpGetFile è una routine di alto livello che gestisce tutte le operazioni di conservazione e sovraccarico associate alla lettura di un file da un server FTP e l'archiviazione in locale. Un'applicazione che deve recuperare solo i dati dei file o che richiede il controllo di chiusura sul trasferimento del file deve usare le funzioni FtpOpenFile e InternetReadFile .

Se il parametro dwFlags specifica FTP_TRANSFER_TYPE_ASCII, la traduzione dei dati dei file converte il controllo e la formattazione dei caratteri in equivalenti locali. Il trasferimento predefinito è la modalità binaria, in cui il file viene scaricato nello stesso formato archiviato nel server.

Sia lpszRemoteFile che lpszNewFile possono essere nomi di file parzialmente o completi relativi 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 FtpGetFile 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