BackgroundDownloader.CreateDownload Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Sobrecargas
CreateDownload(Uri, IStorageFile) |
Inicializa um objeto DownloadOperation que contém o Uri especificado e o arquivo no qual a resposta é gravada. |
CreateDownload(Uri, IStorageFile, IStorageFile) |
Inicializa um objeto DownloadOperation com o URI do recurso, o arquivo no qual a resposta é gravada e o corpo da entidade de solicitação. |
CreateDownload(Uri, IStorageFile)
Inicializa um objeto DownloadOperation que contém o Uri especificado e o arquivo no qual a resposta é gravada.
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
Parâmetros
- resultFile
- IStorageFile
O arquivo no qual a resposta será gravada.
Retornos
A operação de download resultante.
- Atributos
Comentários
A transferência em segundo plano não dá suporte a downloads simultâneos do mesmo URI. Portanto, um aplicativo pode baixar http://example.com/myfile.wmv
uma vez ou baixá-lo novamente após a conclusão de um download anterior. Um aplicativo não deve iniciar dois downloads do mesmo Uri simultaneamente, pois isso pode resultar em arquivos truncados.
Importante
A criação de um grande número de transferências no thread de interface do usuário main com CreateDownload pode resultar em um desempenho degradado da interface do usuário do aplicativo. Se você estiver enfileirando um grande número de transferências, é recomendável chamar CreateDownload em um thread de trabalho em segundo plano como no exemplo a seguir.
operation = await Task.Run(() => { return myDownloader.CreateDownload(uri, file); });
Observação
Alguns sistemas de arquivos têm limites de tamanho de arquivo. A transferência em segundo plano tem lógica especial para transferências com falha rápida que excedem os limites de tamanho de arquivo da unidade de destino (por exemplo, arquivos que excedem 4 GB de tamanho para sistemas de arquivos FAT32). Se o servidor responder com um Content-Length
valor de cabeçalho maior que o tamanho máximo do arquivo do sistema de arquivos, a operação de download falhará imediatamente com HRESULT_FROM_WIN32(ERROR_FILE_SYSTEM_LIMITATION).
Confira também
Aplica-se a
CreateDownload(Uri, IStorageFile, IStorageFile)
Inicializa um objeto DownloadOperation com o URI do recurso, o arquivo no qual a resposta é gravada e o corpo da entidade de solicitação.
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
Parâmetros
- resultFile
- IStorageFile
O arquivo no qual a resposta será gravada.
- requestBodyFile
- IStorageFile
Um arquivo que representa o corpo da entidade de solicitação, que contém dados adicionais que o servidor requer antes que o download possa começar. O arquivo para o qual esse objeto aponta deve ser válido durante o download.
Retornos
A operação de download resultante.
- Atributos
Comentários
O DownloadOperation resultante dá suporte a cenários em que uma solicitação de download válida contém dados específicos exigidos pelo servidor. Por exemplo, um site requer um formulário preenchido antes que o download possa ocorrer.
A transferência em segundo plano não dá suporte a downloads simultâneos do mesmo URI. Portanto, um aplicativo pode baixar http://example.com/myfile.wmv
uma vez ou baixá-lo novamente após a conclusão de um download anterior. Um aplicativo não deve iniciar dois downloads do mesmo Uri simultaneamente, pois isso pode resultar em arquivos truncados.
Importante
A criação de um grande número de transferências no thread de interface do usuário main com CreateDownload pode resultar em um desempenho degradado da interface do usuário do aplicativo. Se você estiver enfileirando um grande número de transferências, é recomendável chamar CreateDownload em um thread de trabalho em segundo plano como no exemplo a seguir.
operation = await Task.Run(() => { return myDownloader.CreateDownload(uri, file); });
Observação
Alguns sistemas de arquivos têm limites de tamanho de arquivo. A transferência em segundo plano tem lógica especial para transferências com falha rápida que excedem os limites de tamanho de arquivo da unidade de destino (por exemplo, arquivos que excedem 4 GB de tamanho para sistemas de arquivos FAT32). Se o servidor responder com um Content-Length
valor de cabeçalho maior que o tamanho máximo do arquivo do sistema de arquivos, a operação de download falhará imediatamente com HRESULT_FROM_WIN32(ERROR_FILE_SYSTEM_LIMITATION).