Ich versuche, große Mengen an Dateien effizienter herunterzuladen

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Ich versuche, große Mengen an Dateien effizienter herunterzuladen

by Guest » 13 Jan 2025, 16:54

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);
}
}
}
}
});
}

Top