从JSON按顺序下载多个文件

时间:2016-06-20 01:38:36

标签: c# json download uwp

如何按顺序下载多个文件?例如:我在json上有3个文件,我想下载第一个文件,第二个文件和第三个文件。因为在我的代码中,文件同时下载,所以预先完成较小的文件大小(因此文件不是顺序的)。 我有一个问题,如何直接克服连续文件(没有延迟时间)?因为当您使用此代码时,下载第一个文件的延迟时间为几秒钟,而下一个文件在一个包中)

我的项目:Project

2 个答案:

答案 0 :(得分:0)

同步下载怎么样?

private static final byte[] IV = new byte[16];
...
cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec, new IvParameterSpec(IV));
cipher.init(Cipher.DECRYPT_MODE, secretKeySpec, new IvParameterSpec(IV));

答案 1 :(得分:0)

我想说我认为强制完成订单是一个非常糟糕的主意。它可能暗示没有正确处理同步操作的代码,它会使应用程序变慢/响应速度变慢。但是,如果你想继续我认为是一个不可取的途径,你可以在你的上一个完成之前不开始下一次下载。一个例子:

async void SynchronousDownload()
{
    string[] filesToDownload = new string[] {
        //enter your list of download URLS here
    };
Queue<DownloadOperation> downloadOperationList = new Queue<DownloadOperation>();

BackgroundDownloader downloader = new BackgroundDownloader();

foreach(string fileURL in filesToDownload)
{
    string fileName = fileURL.Substring(fileURL.LastIndexOf("/") + 1);
    var newFile = await DownloadsFolder.CreateFileAsync(fileName, CreationCollisionOption.GenerateUniqueName);

    var x = downloader.CreateDownload(new Uri(fileURL), newFile);
    downloadOperationList.Enqueue(x);                
}

do
{
    DownloadOperation d = downloadOperationList.Dequeue();
    await d.StartAsync();
} while (downloadOperationList.Count > 0);
}

您可能没有使用DownloadManager,而是使用其他东西。应该适用相同的概念。在上面我开始下载一个文件,一旦完成,下一个文件就开始了