public async void StartDownload(DownModel downModel) { try { BackgroundDownloader downloader = new BackgroundDownloader(); downloader.TransferGroup = DownModel.group; if (setting.SettingContains("UseWifi")) { if ((bool)setting.GetSettingValue("UseWifi")) { downloader.CostPolicy = BackgroundTransferCostPolicy.Always; } else { downloader.CostPolicy = BackgroundTransferCostPolicy.UnrestrictedOnly; } } else { downloader.CostPolicy = BackgroundTransferCostPolicy.UnrestrictedOnly; setting.SetSettingValue("UseWifi", false); } StorageFolder DowFolder = await KnownFolders.VideosLibrary.CreateFolderAsync("Bili-Down", CreationCollisionOption.OpenIfExists); StorageFolder VideoFolder = await DowFolder.CreateFolderAsync(ReplaceSymbol(downModel.title), CreationCollisionOption.OpenIfExists); StorageFolder PartFolder = await VideoFolder.CreateFolderAsync(downModel.part, CreationCollisionOption.OpenIfExists); StorageFile file = await PartFolder.CreateFileAsync(downModel.mid + ".mp4", CreationCollisionOption.OpenIfExists); DownloadOperation downloadOp = downloader.CreateDownload(new Uri(downModel.url), file); downloadOp.CostPolicy = BackgroundTransferCostPolicy.UnrestrictedOnly; BackgroundTransferStatus downloadStatus = downloadOp.Progress.Status; downModel.Guid = downloadOp.Guid.ToString(); downModel.path = downloadOp.ResultFile.Path; string jsonInfo = JsonConvert.SerializeObject(downModel); StorageFile fileWrite = await PartFolder.CreateFileAsync(downModel.Guid + ".json", CreationCollisionOption.OpenIfExists); await FileIO.WriteTextAsync(fileWrite, jsonInfo); StorageFile fileWrite2 = await DowFolder.CreateFileAsync(downModel.Guid + ".bili", CreationCollisionOption.OpenIfExists); await FileIO.WriteTextAsync(fileWrite2, WebUtility.UrlEncode(PartFolder.Path)); DownDanMu(downModel.mid, PartFolder); downloadOp.StartAsync(); } catch (Exception ex) { //WebErrorStatus error = BackgroundTransferError.GetStatus(ex.HResult); MessageDialog md = new MessageDialog(ex.Message); await md.ShowAsync(); } }
public async void StartDownload(DownModel downModel) { try { BackgroundDownloader downloader = new BackgroundDownloader(); downloader.TransferGroup = DownModel.group; if (setting.SettingContains("UseWifi")) { if ((bool)setting.GetSettingValue("UseWifi")) { downloader.CostPolicy = BackgroundTransferCostPolicy.Always; } else { downloader.CostPolicy = BackgroundTransferCostPolicy.UnrestrictedOnly; } } else { downloader.CostPolicy = BackgroundTransferCostPolicy.UnrestrictedOnly; setting.SetSettingValue("UseWifi",false); } StorageFolder DowFolder = await KnownFolders.VideosLibrary.CreateFolderAsync("Bili-Down", CreationCollisionOption.OpenIfExists); StorageFolder VideoFolder = await DowFolder.CreateFolderAsync(ReplaceSymbol(downModel.title), CreationCollisionOption.OpenIfExists); StorageFolder PartFolder = await VideoFolder.CreateFolderAsync(downModel.part, CreationCollisionOption.OpenIfExists); StorageFile file = await PartFolder.CreateFileAsync(downModel.mid + ".mp4", CreationCollisionOption.OpenIfExists); DownloadOperation downloadOp = downloader.CreateDownload(new Uri(downModel.url), file); downloadOp.CostPolicy = BackgroundTransferCostPolicy.UnrestrictedOnly; BackgroundTransferStatus downloadStatus = downloadOp.Progress.Status; downModel.Guid = downloadOp.Guid.ToString(); downModel.path = downloadOp.ResultFile.Path; string jsonInfo = JsonConvert.SerializeObject(downModel); StorageFile fileWrite = await PartFolder.CreateFileAsync(downModel.Guid + ".json", CreationCollisionOption.OpenIfExists); await FileIO.WriteTextAsync(fileWrite, jsonInfo); StorageFile fileWrite2 = await DowFolder.CreateFileAsync(downModel.Guid + ".bili", CreationCollisionOption.OpenIfExists); await FileIO.WriteTextAsync(fileWrite2, WebUtility.UrlEncode(PartFolder.Path)); DownDanMu(downModel.mid, PartFolder); downloadOp.StartAsync(); } catch (Exception ex) { //WebErrorStatus error = BackgroundTransferError.GetStatus(ex.HResult); MessageDialog md = new MessageDialog(ex.Message); await md.ShowAsync(); } }