Extrahera PPSX-innehåll från ZIP i .NET
Använd Aspose.ZIP for .NET för att öppna ett ZIP-arkiv, inspektera posterna och återställa endast de PPSX-filer som C#-applikationen behöver. På den här sidan betyder extrahering att objekt med ändelsen .ppsx hittas i ZIP-containern och skrivs till en kontrollerad destination. Aspose.ZIP återställer filen som lagras i arkivet; det tolkar eller konverterar inte filens interna innehåll.
Selektiv extrahering är användbar för kontorsdokumentpaket, affärsrapporter, presentationer och företagsuppladdningar. Applikationen kan hoppa över irrelevanta poster, kontrollera namn och storlekar och skicka godkända filer vidare utan att packa upp hela paketet.
Så extraherar du PPSX-filer från ZIP med C#
Installera
Aspose.ZIP for .NET-paketet
och referera till namespace Aspose.Zip. Arkivmetadata finns tillgängliga innan filer skrivs, så applikationen kan kontrollera ArchiveEntry.Name, ArchiveEntry.IsDirectory och ArchiveEntry.UncompressedSize innan Office-filer sparas.
Package Manager Console Command
PM> Install-Package Aspose.Zip
Efter installation öppnar du ZIP med Archive, går igenom Archive.Entries, väljer icke-katalogposter med ändelsen .ppsx och anropar ArchiveEntry.Extract för varje godkänd destination. Exemplet använder bara det slutliga filnamnet, så arkiverade sökvägar kan inte skriva utanför målmappen.
Steg för att extrahera PPSX-filer i C#
- Ange sökvägen till käll-ZIP och skapa en isolerad utmatningskatalog.
- Öppna paketet med klassen
Archive. - Gå igenom
Archive.Entriesi stället för att extrahera hela paketet direkt. - Hoppa över kataloger och välj filnamn med ändelsen
.ppsx. - Skapa en målsökväg som ligger kvar inom godkänd utmatningsrot.
- Avvisa poster som överskrider konfigurerad extraherad storlek.
- Spara varje godkänd post med
ArchiveEntry.Extract.
Systemkrav
- En stödd .NET-runtime på Windows, Linux eller macOS.
- Visual Studio, JetBrains Rider, Visual Studio Code eller annan C#-utvecklingsmiljö.
- Aspose.ZIP for .NET installerat via NuGet eller refererat som assembly.
- Läsåtkomst till käll-ZIP och skrivåtkomst till målkatalogen.
- Tydliga gränser för storlek, körtid och temporär lagring för opålitliga arkiv.
C#-exempel: extrahera valda PPSX-filer från ZIP
Koden öppnar ett ZIP-paket, hoppar över kataloger, filtrerar poster efter tillåten ändelse och skriver matchande filer till en enda utmatningskatalog. Genom att släppa arkiverade sökvägar kan överordnade katalogsegment inte styra destinationen. Produktionskod bör även definiera en deterministisk regel för dubbla filnamn.
Extrahera PPSX-filer från ZIP - C#
using Aspose.Zip;
using System;
using System.IO;
string archivePath = Path.GetFullPath("package.zip");
string outputDirectory = Path.GetFullPath("extracted-ppsx");
string[] allowedExtensions = { ".ppsx" };
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(
$"Posten '{fileName}' överskrider extraheringsgränsen på 100 MB.");
}
string destinationPath = Path.Combine(outputDirectory, fileName);
entry.Extract(destinationPath);
}
}
Implementationsnoteringar för PPSX-filer
Filtrering på ändelse identifierar bara kandidatfiler; det bevisar inte att innehållet är giltigt eller säkert. Makron, formler, inbäddade objekt, externa länkar och dokumentstruktur bör kontrolleras med en Office-komponent.
Exemplet plattar avsiktligt ut arkiverade sökvägar. Om två godkända poster har samma slutliga filnamn kan ArchiveEntry.Extract skriva över en befintlig fil. Definiera policyn före extrahering: avvisa dubbletter, skapa unika namn eller bevara en validerad relativ mappstruktur.
Säkerhet och integritet
Behandla uppladdade ZIP-filer, postnamn och innehåll som opålitlig indata. Kombinera inte ArchiveEntry.Name direkt med utmatningskatalogen, eftersom en post kan innehålla absoluta sökvägar eller segment till överordnade kataloger. Exemplet använder Path.GetFileName; om mappar ska bevaras, lös den slutliga sökvägen och kontrollera att den ligger inom godkänd rot.
Begränsa komprimerad storlek, extraherad storlek per post och totalt, antal poster, bearbetningstid och parallella jobb. Använd temporär lagring med begränsade rättigheter, ta bort partiella resultat efter fel och logga inte lösenord, privata filnamn eller extraherat innehåll.
FAQ om extrahering av PPSX-filer
Hur extraherar jag bara PPSX-filer från ett ZIP-arkiv i C#?
Öppna ZIP med Archive, gå igenom Archive.Entries, filtrera icke-katalogposter på ändelsen .ppsx och anropa Extract för varje validerad utmatningsväg.
Validerar Aspose.ZIP det interna innehållet i den extraherade PPSX-filen?
Nej. Aspose.ZIP återställer filen som lagras i arkivet. Läsning, validering eller konvertering hör till en komponent som stöder formatet.
Kan samma urvalsmönster användas med 7Z-, RAR- eller TAR-containrar?
Principen är densamma, men varje container måste öppnas med motsvarande Aspose.ZIP-arkivklass. Posttyper och extraheringsåtgärder kan skilja sig mellan format.
Hur bör dubbla PPSX-filnamn hanteras?
Bestäm regeln före extrahering: avvisa dubbletter, skapa unika namn eller bevara en validerad relativ mappstruktur.
Relaterade Office-guider
Se C#-sidor för kalkylblad, presentationer och anteckningar som ofta finns i ZIP.