在UWP中下载PDF和Word文件

时间:2017-08-03 12:53:35

标签: c# pdf ms-word uwp

目前我正在开发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所示。任何人都可以帮助解决这个问题。我想下载文件,也应该打开下载的文件。

1 个答案:

答案 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