Ich versuche, große Mengen an Dateien effizienter herunterzuladenC#

Ein Treffpunkt für C#-Programmierer
Guest
 Ich versuche, große Mengen an Dateien effizienter herunterzuladen

Post by Guest »

Ich versuche, ca. herunterzuladen. 45.000 Bilddateien von einer API.
Die Bilddateien haben jeweils weniger als 50 KB.
Mit meinem Code dauert das 2-3 Stunden.
Gibt es noch mehr? effiziente Möglichkeit in C#, sie herunterzuladen?

Code: Select all

private static readonly string baseUrl =
"http://url.com/Handlers/Image.ashx?imageid={0}&type=image";
internal static void DownloadAllMissingPictures(List ImagesToDownload,
string imageFolderPath)
{
Parallel.ForEach(Partitioner.Create(0, ImagesToDownload.Count), range =>
{
for (var i = range.Item1; i < range.Item2; i++)
{
string ImageID = ImagesToDownload[i].ImageId;

using (var webClient = new WebClient())
{
string url = String.Format(baseUrl, ImageID);
string file = String.Format(@"{0}\{1}.jpg", imageFolderPath,
ImagesToDownload[i].ImageId);

byte[] data = webClient.DownloadData(url);

using (MemoryStream mem = new MemoryStream(data))
{
using (var image = Image.FromStream(mem))
{
image.Save(file, ImageFormat.Jpeg);
}
}
}
}
});
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post