У меня есть JSON, который содержит строку и ссылку на изображение. Я хочу загрузить все изображения.
Код:
question.hasImg = hasimg;
if (question.hasImg == "1")
{
JsonArray gambar = groupObjectSoal["images"].GetArray();\
foreach (JsonValue groupValueGambar in gambar)
{
string imgSoal = groupValueGambar.GetString();
imgName = System.IO.Path.GetFileNameWithoutExtension(imgSoal);
DownloadGambar(imgSoal);
IReadOnlyList<DownloadOperation> downloads = null;
downloads = await BackgroundDownloader.GetCurrentDownloadsAsync();
int i = 0;
if (downloads.Count > 0)
{
gambardownloading = new string[downloads.Count];
foreach (DownloadOperation download in downloads)
{
// list download tryout
gambardownloading[i] = download.ResultFile.Name;
i++;
}
}
}
}
StorageFolder installedLocation = ApplicationData.Current.LocalFolder;
private async void DownloadGambar(string fileLocation)
{
var uri = new Uri(fileLocation);
var downloader = new BackgroundDownloader();
StorageFolder library = await installedLocation.CreateFolderAsync("library", CreationCollisionOption.OpenIfExists);
StorageFolder gambar = await library.CreateFolderAsync("gambar", CreationCollisionOption.OpenIfExists);
StorageFolder idName = await gambar.CreateFolderAsync(quiz.ID.ToString(), CreationCollisionOption.OpenIfExists);
StorageFile file = await idName.CreateFileAsync(imgName + ".JPG",
CreationCollisionOption.ReplaceExisting);
DownloadOperation download = downloader.CreateDownload(uri, file);
await GambarStartDownloadAsync(download);
}
private void GambarProgressCallback(DownloadOperation obj)
{
double progress
= ((double)obj.Progress.BytesReceived / obj.Progress.TotalBytesToReceive);
progress = Math.Round((double)progress, 2);
if (progress >= 1.0)
{
_activeDownload = null;
}
}
У меня проблема, т.е. загружаются не все изображения (например, есть 27 изображений, но только 25изображения, которые были успешно загружены). Как решить эту проблему?