Condividi tramite


BackgroundDownloader.CreateDownload Metodo

Definizione

Overload

CreateDownload(Uri, IStorageFile)

Inizializza un oggetto DownloadOperation contenente l'URI specificato e il file in cui viene scritta la risposta.

CreateDownload(Uri, IStorageFile, IStorageFile)

Inizializza un oggetto DownloadOperation con l'URI della risorsa, il file in cui viene scritta la risposta e il corpo dell'entità della richiesta.

CreateDownload(Uri, IStorageFile)

Inizializza un oggetto DownloadOperation contenente l'URI specificato e il file in cui viene scritta la risposta.

public:
 virtual DownloadOperation ^ CreateDownload(Uri ^ uri, IStorageFile ^ resultFile) = CreateDownload;
/// [Windows.Foundation.Metadata.Overload("CreateDownload")]
DownloadOperation CreateDownload(Uri const& uri, IStorageFile const& resultFile);
[Windows.Foundation.Metadata.Overload("CreateDownload")]
public DownloadOperation CreateDownload(System.Uri uri, IStorageFile resultFile);
function createDownload(uri, resultFile)
Public Function CreateDownload (uri As Uri, resultFile As IStorageFile) As DownloadOperation

Parametri

uri
Uri Uri

Il percorso della risorsa.

resultFile
IStorageFile

File in cui verrà scritta la risposta.

Restituisce

Operazione di download risultante.

Attributi

Commenti

Il trasferimento in background non supporta i download simultanei dello stesso URI. Quindi un'app può scaricarla http://example.com/myfile.wmv una sola volta o scaricarla di nuovo dopo il completamento di un download precedente. Un'app non deve avviare due download dello stesso URI contemporaneamente, perché ciò può comportare il troncamento dei file.

Importante

La creazione di un numero elevato di trasferimenti nel thread principale dell'interfaccia utente con CreateDownload può comportare una riduzione delle prestazioni dell'interfaccia utente dell'app. Se si accoda un numero elevato di trasferimenti, è consigliabile chiamare CreateDownload in un thread di lavoro in background come nell'esempio seguente.

operation = await Task.Run(() => { return myDownloader.CreateDownload(uri, file); });

Nota

Alcuni file system hanno limiti di dimensioni dei file. Il trasferimento in background ha una logica speciale per i trasferimenti con errori rapidi che superano i limiti delle dimensioni del file dell'unità di destinazione (ad esempio, i file che superano i 4 GB di dimensioni per i file system FAT32). Se il server risponde con un Content-Length valore di intestazione maggiore della dimensione massima del file system, l'operazione di download non riesce immediatamente con HRESULT_FROM_WIN32(ERROR_FILE_SYSTEM_LIMITATION).

Vedi anche

Si applica a

CreateDownload(Uri, IStorageFile, IStorageFile)

Inizializza un oggetto DownloadOperation con l'URI della risorsa, il file in cui viene scritta la risposta e il corpo dell'entità della richiesta.

public:
 virtual DownloadOperation ^ CreateDownload(Uri ^ uri, IStorageFile ^ resultFile, IStorageFile ^ requestBodyFile) = CreateDownload;
/// [Windows.Foundation.Metadata.Overload("CreateDownloadFromFile")]
DownloadOperation CreateDownload(Uri const& uri, IStorageFile const& resultFile, IStorageFile const& requestBodyFile);
[Windows.Foundation.Metadata.Overload("CreateDownloadFromFile")]
public DownloadOperation CreateDownload(System.Uri uri, IStorageFile resultFile, IStorageFile requestBodyFile);
function createDownload(uri, resultFile, requestBodyFile)
Public Function CreateDownload (uri As Uri, resultFile As IStorageFile, requestBodyFile As IStorageFile) As DownloadOperation

Parametri

uri
Uri Uri

Il percorso della risorsa.

resultFile
IStorageFile

File in cui verrà scritta la risposta.

requestBodyFile
IStorageFile

File che rappresenta il corpo dell'entità richiesta, che contiene dati aggiuntivi richiesti dal server prima che il download possa iniziare. Il file a cui punta questo oggetto deve essere valido per la durata del download.

Restituisce

Operazione di download risultante.

Attributi

Commenti

DownloadOperation risultante supporta scenari in cui una richiesta di download valida contiene dati specifici richiesti dal server. Ad esempio, un sito Web richiede un modulo compilato prima che il download possa essere eseguito.

Il trasferimento in background non supporta i download simultanei dello stesso URI. Quindi un'app può scaricarla http://example.com/myfile.wmv una sola volta o scaricarla di nuovo dopo il completamento di un download precedente. Un'app non deve avviare due download dello stesso URI contemporaneamente, perché ciò può comportare il troncamento dei file.

Importante

La creazione di un numero elevato di trasferimenti nel thread principale dell'interfaccia utente con CreateDownload può comportare una riduzione delle prestazioni dell'interfaccia utente dell'app. Se si accoda un numero elevato di trasferimenti, è consigliabile chiamare CreateDownload in un thread di lavoro in background come nell'esempio seguente.

operation = await Task.Run(() => { return myDownloader.CreateDownload(uri, file); });

Nota

Alcuni file system hanno limiti di dimensioni dei file. Il trasferimento in background ha una logica speciale per i trasferimenti con errori rapidi che superano i limiti delle dimensioni del file dell'unità di destinazione (ad esempio, i file che superano i 4 GB di dimensioni per i file system FAT32). Se il server risponde con un Content-Length valore di intestazione maggiore della dimensione massima del file system, l'operazione di download non riesce immediatamente con HRESULT_FROM_WIN32(ERROR_FILE_SYSTEM_LIMITATION).

Vedi anche

Si applica a