POSTSCRIPT-inhoud uit ZIP extraheren in .NET
Gebruik Aspose.ZIP for .NET om een ZIP-archief te openen, de items te inspecteren en alleen de POSTSCRIPT-bestanden te herstellen die uw C#-applicatie nodig heeft. Op deze pagina betekent extraheren dat items met de extensie .postscript in de ZIP-container worden gevonden en naar een gecontroleerde doelmap worden geschreven. Aspose.ZIP herstelt het bestand dat in het archief is opgeslagen; de interne inhoud wordt niet geïnterpreteerd of geconverteerd.
Selectieve extractie is nuttig voor documentinname, uploadverwerking, rapportpakketten en contentmanagement-workflows. De applicatie kan irrelevante items overslaan, namen en groottes controleren en goedgekeurde bestanden doorgeven aan de volgende stap zonder het hele pakket uit te pakken.
POSTSCRIPT-bestanden uit ZIP extraheren met C#
Installeer het
Aspose.ZIP for .NET-pakket
en verwijs naar de namespace Aspose.Zip. Archiefmetadata zijn beschikbaar voordat bestanden worden geschreven, zodat de applicatie ArchiveEntry.Name, ArchiveEntry.IsDirectory en ArchiveEntry.UncompressedSize kan controleren voordat documentbestanden worden opgeslagen.
Package Manager Console Command
PM> Install-Package Aspose.Zip
Open na installatie de ZIP met Archive, doorloop Archive.Entries, selecteer niet-directory-items met extensie .postscript en roep ArchiveEntry.Extract aan voor elke goedgekeurde bestemming. Het voorbeeld gebruikt alleen de uiteindelijke bestandsnaam, zodat paden uit het archief niet buiten de doelmap kunnen schrijven.
Stappen om POSTSCRIPT-bestanden te extraheren in C#
- Bepaal het bronpad van de ZIP en maak een geïsoleerde uitvoermap.
- Open het pakket met de klasse
Archive. - Doorloop
Archive.Entriesin plaats van het hele pakket direct uit te pakken. - Sla directory’s over en selecteer bestandsnamen met de extensie
.postscript. - Bouw een doelpad dat binnen de goedgekeurde uitvoerroot blijft.
- Weiger items die de ingestelde uitgepakte groottelimiet overschrijden.
- Sla elk goedgekeurd item op met
ArchiveEntry.Extract.
Systeemvereisten
Controleer vóór het uitvoeren van het voorbeeld of de omgeving het volgende bevat:
- Een ondersteunde .NET-runtime op Windows, Linux of macOS.
- Visual Studio, JetBrains Rider, Visual Studio Code of een andere C#-ontwikkelomgeving.
- Aspose.ZIP for .NET geïnstalleerd via NuGet of gerefereerd als assembly.
- Leestoegang tot de bron-ZIP en schrijftoegang tot de doeldirectory.
- Duidelijke limieten voor grootte, uitvoeringstijd en tijdelijke opslag voor niet-vertrouwde archieven.
C#-voorbeeld: geselecteerde POSTSCRIPT-bestanden uit ZIP extraheren
De code opent een ZIP-pakket, slaat directory’s over, filtert items op de toegestane extensie en schrijft overeenkomende bestanden naar één uitvoermap. Door archiefpaden te negeren kunnen parent-directorysegmenten de bestemming niet bepalen. Productiecode moet ook een deterministische regel voor dubbele bestandsnamen definiëren.
POSTSCRIPT-bestanden uit ZIP extraheren - C#
using Aspose.Zip;
using System;
using System.IO;
string archivePath = Path.GetFullPath("package.zip");
string outputDirectory = Path.GetFullPath("extracted-postscript");
string[] allowedExtensions = { ".postscript" };
const ulong MaxEntrySize = 100UL * 1024 * 1024;
Directory.CreateDirectory(outputDirectory);
using (var archive = new Archive(archivePath))
{
foreach (ArchiveEntry entry in archive.Entries)
{
if (entry.IsDirectory) continue;
string fileName = Path.GetFileName(entry.Name);
if (string.IsNullOrWhiteSpace(fileName)) continue;
string extension = Path.GetExtension(fileName);
if (!Array.Exists(
allowedExtensions,
value => string.Equals(value, extension, StringComparison.OrdinalIgnoreCase)))
{
continue;
}
if (entry.UncompressedSize > MaxEntrySize)
{
throw new InvalidDataException(
$"Item '{fileName}' overschrijdt de extractielimiet van 100 MB.");
}
string destinationPath = Path.Combine(outputDirectory, fileName);
entry.Extract(destinationPath);
}
}
Implementatienotities voor POSTSCRIPT-bestanden
Filteren op extensie identificeert alleen kandidaatbestanden; het bewijst niet dat de inhoud geldig of veilig is. Als het bestand wordt weergegeven, geïndexeerd of geconverteerd, valideer dan structuur, codering, conformiteit en inhoud met een documentcomponent.
Het voorbeeld maakt archiefpaden bewust vlak. Als twee goedgekeurde items dezelfde uiteindelijke bestandsnaam hebben, kan ArchiveEntry.Extract een bestaand bestand overschrijven. Bepaal vóór extractie het beleid: duplicaten weigeren, unieke namen genereren of een gevalideerde relatieve mapstructuur behouden. Gebruik per taak een aparte bestemming zodat parallelle uitvoer niet wordt gemengd.
Beveiliging en privacy
Behandel geüploade ZIP-bestanden, itemnamen en inhoud als niet-vertrouwde invoer. Combineer ArchiveEntry.Name niet direct met de uitvoerdirectory, omdat een item absolute paden of segmenten naar bovenliggende directories kan bevatten. Het voorbeeld gebruikt Path.GetFileName; als mappen behouden moeten blijven, los dan het uiteindelijke pad op en controleer dat het binnen de goedgekeurde root blijft.
Beperk gecomprimeerde grootte, uitgepakte grootte per item en totaal, aantal items, verwerkingstijd en parallelle taken. Gebruik tijdelijke opslag met beperkte rechten, verwijder gedeeltelijke uitvoer na fouten en log geen wachtwoorden, private bestandsnamen of geëxtraheerde inhoud.
FAQ over het extraheren van POSTSCRIPT-bestanden
Hoe extraheer ik alleen POSTSCRIPT-bestanden uit een ZIP-archief in C#?
Open de ZIP met Archive, doorloop Archive.Entries, filter niet-directory-items op extensie .postscript en roep Extract aan voor elk gevalideerd uitvoerpad.
Valideert Aspose.ZIP de interne inhoud van het geëxtraheerde POSTSCRIPT-bestand?
Nee. Aspose.ZIP herstelt het bestand dat in het archief is opgeslagen. Lezen, valideren of converteren van de inhoud hoort bij een component die dat formaat ondersteunt.
Werkt hetzelfde selectiepatroon met 7Z-, RAR- of TAR-containers?
Het concept is hetzelfde, maar elke container moet met de bijbehorende Aspose.ZIP-archiefklasse worden geopend. Itemtypen en extractiebewerkingen kunnen per formaat verschillen.
Hoe ga ik om met dubbele POSTSCRIPT-bestandsnamen?
Bepaal de regel vóór extractie: duplicaten weigeren, unieke namen genereren of een gevalideerde relatieve mapstructuur behouden.
Gerelateerde Document-extractiegidsen
Bekijk C#-pagina's voor document- en publicatieformaten die vaak in archieven staan.