Ich erstelle eine Erweiterungsmethode, die einen ZipArchiveEntry ähnlich wie ZipArchive.CreateEntryFromFile erstellt, aber von einer Web-URL herunterlädt und den Stream in den ZipArchiveEntry schreibt. Ich bin gespannt, ob es einen besseren Weg gibt, dies zu erreichen. Hier ist der Code, den ich derzeit verwende.
Ich erstelle eine Erweiterungsmethode, die einen ZipArchiveEntry ähnlich wie ZipArchive.CreateEntryFromFile erstellt, aber von einer Web-URL herunterlädt und den Stream in den ZipArchiveEntry schreibt. Ich bin gespannt, ob es einen besseren Weg gibt, dies zu erreichen. Hier ist der Code, den ich derzeit verwende. [code]private static HttpClient Client = new();
public static ZipArchiveEntry CreateEntryFromWebUrl(this ZipArchive archive, string url, string entryName) { ArgumentNullException.ThrowIfNull(archive, $"Bad {nameof(ZipArchive)}"); var entry = archive.CreateEntry(entryName); using Stream entrystream = entry.Open(); using var urlStream = Client.GetStreamAsync(url).GetAwaiter().GetResult(); urlStream.CopyTo(entrystream); return entry; } [/code]
Dies ist bei einem 400-MB-Archiv innerhalb von Sekunden abgeschlossen.
private static async Task ExtractFilesAsync(this ZipArchive archive, string destination, IProgress progress = null)
{
await...
Ich habe die folgende Erweiterungsmethode:
public static class ListExtensions
{
public static IList AddRangeByKey(
this IList list, string keyName,
IEnumerable arrayElements) =>...
Die Graph -API kehrt für verschiedene Anforderungen (Benutzer, Gruppen usw.) A Seite zurück. Dieses Element enthält die erste Häufigkeit von Elementen und die NextPageRequest Eigenschaft, mit der der...