我是编程的初学者,我想知道在UWP中下载文件的正确方法我现在使用它,但它只能在50%的时间内工作:
public async Task StartDownload()
{
try
{
StorageFile sf = await DownloadsFolder.CreateFileAsync(title.Text, CreationCollisionOption.GenerateUniqueName);
downloadFolder = (await sf.GetParentAsync()).ToString();
HttpClient client = new HttpClient();
byte[] buffer = await client.GetByteArrayAsync(inputURL);
using (Stream stream = await sf.OpenStreamForWriteAsync())
{
stream.Write(buffer, 0, buffer.Length);
}
path = sf.Path;
}
catch (Exception e)
{
MessageDialog dialog = new MessageDialog("Sorry, something went wrong...", "An error...");
await dialog.ShowAsync();
}
}
Run Code Online (Sandbox Code Playgroud)
例外情况是:"0x750F6D7E处的未处理异常(program.exe 0xC000027B中的combase.dll;发生了应用程序内部异常(参数:0x16E73128,0x00000001)."
提前致谢
有两种方法可以做到这一点.
第一个是像你一样使用HttpClient(这适用于小文件)
第二个是使用BackgroundDownloader类.这是推荐的方式
private async void StartDownload_Click(object sender, RoutedEventArgs e)
{
try
{
Uri source = new Uri(inputURL);
StorageFile destinationFile = await KnownFolders.PicturesLibrary.CreateFileAsync(
title.Text, CreationCollisionOption.GenerateUniqueName);
BackgroundDownloader downloader = new BackgroundDownloader();
DownloadOperation download = downloader.CreateDownload(source, destinationFile);
// Attach progress and completion handlers.
HandleDownloadAsync(download, true);
}
catch (Exception ex)
{
LogException("Download Error", ex);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6432 次 |
| 最近记录: |