目前我正在开发UWP应用程序,因为我需要将pdf和word url下载到系统下载文件夹,为此需要我正在尝试backgrounddownloader类,如下面的代码所示。
Uri source = new Uri(selectedfile.DocumentPath);
StorageFile destinationFile = await KnownFolders.PicturesLibrary.CreateFileAsync(
selectedfile.DocumentName, CreationCollisionOption.GenerateUniqueName);
BackgroundDownloader downloader = new BackgroundDownloader();
DownloadOperation download = downloader.CreateDownload(source, destinationFile);
我还想尝试另一种下载网址的方法是代码
var request = WebRequest.CreateHttp(selectedfile.DocumentPath);
var sampleFile = await KnownFolders.PicturesLibrary.CreateFileAsync(selectedfile.DocumentName, CreationCollisionOption.GenerateUniqueName);
var cli = new HttpClient();
var str = await cli.GetStreamAsync(request.RequestUri);
var dst = await sampleFile.OpenStreamForWriteAsync();
await str.AsInputStream().AsStreamForRead().CopyToAsync(dst);
对于使用上述两种方法,url可以下载为pdf和word但是我试图打开pdf文件和word文件但是无法打开,它显示的错误如下图trying to open the open downloaded file it shown like this所示。任何人都可以帮助解决这个问题。我想下载文件,也应该打开下载的文件。
答案 0 :(得分:1)
BackgroundDownloader.CreateDownload
方法初始化包含指定Uri的DownloadOperation
对象以及写入响应的文件。
创建DownloadOperation
时,它不会启动下载操作。
我们应该能够使用DownloadOperation.StartAsync
开始下载操作。
例如:
Uri source = new Uri(selectedfile.DocumentPath);
StorageFile destinationFile = await KnownFolders.PicturesLibrary.CreateFileAsync("ab.pdf", CreationCollisionOption.GenerateUniqueName);
BackgroundDownloader downloader = new BackgroundDownloader();
DownloadOperation download = downloader.CreateDownload(source, destinationFile);
await download.StartAsync();
如果您想了解有关下载文件的更多详细信息,请参阅Background transfer sample。