मेरे पास कुछ फ़ाइलें हैं जिन्हें मुझे ऐप स्टार्टअप (पहले रन) पर डाउनलोड करने की आवश्यकता है। मैं खिड़कियों 8. में पृष्ठभूमि डाउनलोडर का उपयोग कर रहा यह मैं इसे कैसे उपयोग करते हैं:पृष्ठभूमि डाउनलोडर विंडोज 8 एकाधिक फाइलें
BackgroundDownloader downloader = new BackgroundDownloader();
List<DownloadOperation> operations = new List<DownloadOperation>();
foreach (FileInfo info in infoFiles)
{
Windows.Storage.ApplicationData.Current.LocalFolder;
foreach (string folder in info.Folders)
{
currentFolder = await currentFolder.CreateFolderAsync(folder, CreationCollisionOption.OpenIfExists);
}
//folder hierarchy created, save the file
StorageFile file = await currentFolder.CreateFileAsync(info.FileName, CreationCollisionOption.ReplaceExisting);
DownloadOperation op = downloader.CreateDownload(new Uri(info.Url), file);
activeDownloads.Add(op);
operations.Add(op);
}
foreach (DownloadOperation download in operations)
{
//start downloads
await HandleDownloadAsync(download, true);
}
जब मैं BackgroundDownloader.GetCurrentDownloadsAsync();
मैं केवल एक पृष्ठभूमि डाउनलोड को ढूंढने में उपयोग करने के लिए प्रयास करें। तो मैंने उन्हें अतुल्यकालिक रूप से शुरू करने के लिए उपरोक्त प्रतीक्षा ऑपरेटर को हटा दिया।
हालांकि मुझे पता होना चाहिए कि सभी फाइलें कब समाप्त हो गई हैं, इसलिए मैं एक प्रगति पट्टी सेट कर सकता हूं।
मुझे एकाधिक फ़ाइलों को डाउनलोड करने का एक तरीका चाहिए, BackgroundDownloader.GetCurrentDownloadsAsync();
में उन सभी को खोजें और सभी डाउनलोड पूर्ण होने पर जानें।
private async Task HandleDownloadAsync(DownloadOperation download, bool start)
{
try
{
Debug.WriteLine("Running: " + download.Guid, NotifyType.StatusMessage);
// Store the download so we can pause/resume.
activeDownloads.Add(download);
Progress<DownloadOperation> progressCallback = new Progress<DownloadOperation>(DownloadProgress);
if (start)
{
// Start the download and attach a progress handler.
await download.StartAsync().AsTask(cts.Token, progressCallback);
}
else
{
// The download was already running when the application started, re-attach the progress handler.
await download.AttachAsync().AsTask(cts.Token, progressCallback);
}
ResponseInformation response = download.GetResponseInformation();
Debug.WriteLine(String.Format("Completed: {0}, Status Code: {1}", download.Guid, response.StatusCode),
NotifyType.StatusMessage);
}
catch (TaskCanceledException)
{
Debug.WriteLine("Canceled: " + download.Guid, NotifyType.StatusMessage);
}
catch (Exception ex)
{
if (!IsExceptionHandled("Execution error", ex, download))
{
throw;
}
}
finally
{
activeDownloads.Remove(download);
}
}
आप पर ध्यान दिया है [त्वरित प्रारंभ: फ़ाइल डाउनलोड] (http://msdn.microsoft.com/en-us/library/windows/apps/jj152726.aspx)? – Harrison