Εξαγωγή αρχείων WebP από ZIP σε .NET
Χρησιμοποιήστε το Aspose.ZIP for .NET για να ελέγξετε ένα ZIP archive και να επαναφέρετε μόνο τα αρχεία WebP που χρειάζεται η C# εφαρμογή σας. Σε αυτή τη σελίδα, extraction σημαίνει επιλογή των κατάλληλων αρχείων από ZIP container και εγγραφή τους σε ελεγχόμενο destination directory. Το Aspose.ZIP δεν ερμηνεύει ούτε μετατρέπει το εσωτερικό περιεχόμενο του αρχείου.
Η selective extraction ταιριάζει σε ανταλλαγή δεδομένων, ETL jobs, reporting imports, διανομή ρυθμίσεων και αυτοματοποιημένα integration packages. Η εφαρμογή μπορεί να αγνοεί μη σχετικά entries, να επιβάλλει output και resource policies και να περνά approved files στο επόμενο service χωρίς να αποσυμπιέζει ολόκληρο το archive.
Εξαγωγή αρχείων WebP από ZIP με C#
Εγκαταστήστε το
Aspose.ZIP package for .NET
και εισαγάγετε το namespace Aspose.Zip. Τα archive metadata είναι διαθέσιμα πριν γραφτεί οτιδήποτε, ώστε η εφαρμογή να αξιολογεί ArchiveEntry.Name, ArchiveEntry.IsDirectory και ArchiveEntry.UncompressedSize ως μέρος της acceptance policy.
Package Manager Console Command
PM> Install-Package Aspose.Zip
Ανοίξτε το ZIP με Archive, διατρέξτε το Archive.Entries, επιλέξτε entries με την επέκταση .webp και καλέστε ArchiveEntry.Extract για κάθε εγκεκριμένο destination. Το παράδειγμα μειώνει τα archived paths στο τελικό filename, ώστε τα entries να μην μπορούν να βγουν από το target directory.
Βήματα για επαναφορά αρχείων WebP σε C#
- Επιλύστε το source ZIP path και δημιουργήστε isolated output directory.
- Ανοίξτε το package με την class
Archive. - Διατρέξτε το
Archive.Entriesαντί να επεκτείνετε κάθε item. - Επιλέξτε entries των οποίων το τελικό filename χρησιμοποιεί την επέκταση .webp.
- Δημιουργήστε destination path που παραμένει κάτω από το approved output root.
- Απορρίψτε entries που υπερβαίνουν το configured expanded-size limit.
- Αποθηκεύστε κάθε accepted item με
ArchiveEntry.Extract.
Απαιτήσεις συστήματος
Πριν εκτελέσετε το παράδειγμα, βεβαιωθείτε ότι το περιβάλλον περιλαμβάνει:
- Υποστηριζόμενο .NET runtime σε Windows, Linux ή macOS.
- Visual Studio, JetBrains Rider, Visual Studio Code ή άλλο C# development environment.
- Aspose.ZIP for .NET εγκατεστημένο μέσω NuGet ή referenced ως assembly.
- Read access στο source archive και write access στο destination directory.
- Storage και execution limits κατάλληλα για μη αξιόπιστη compressed input.
Παράδειγμα C#: επιλογή αρχείων WebP μέσα σε ZIP archive
Ο κώδικας ανοίγει ένα ZIP package, φιλτράρει non-directory entries με βάση την approved extension και γράφει τα matching files σε ένα output directory. Το flattening των archived paths κρατά το παράδειγμα σύντομο και αποτρέπει parent-directory segments από το να ελέγξουν το destination. Ο production κώδικας πρέπει επίσης να ορίζει deterministic policy για duplicate output names.
Εξαγωγή αρχείων WebP από ZIP - C#
using Aspose.Zip;
using System;
using System.IO;
string archivePath = Path.GetFullPath("package.zip");
string outputDirectory = Path.GetFullPath("extracted-webp");
string[] allowedExtensions = { ".webp" };
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(
$"Το entry '{fileName}' υπερβαίνει το όριο εξαγωγής των 100 MB.");
}
string destinationPath = Path.Combine(outputDirectory, fileName);
entry.Extract(destinationPath);
}
}
Σημειώσεις υλοποίησης για WebP packages
Η σωστή επέκταση είναι μόνο ένα πρώτο φίλτρο. Επικυρώστε περιεχόμενο, encoding και δομή με το component που θα επεξεργαστεί στη συνέχεια το επαναφερόμενο αρχείο.Το παράδειγμα μειώνει τα archived paths σε απλά ονόματα αρχείων. Αν δύο αποδεκτά entries έχουν το ίδιο τελικό όνομα, το ArchiveEntry.Extract μπορεί να αντικαταστήσει υπάρχον output file. Ορίστε ξεκάθαρο κανόνα σύγκρουσης: απόρριψη duplicates, δημιουργία μοναδικών ονομάτων ή διατήρηση validated relative folder structure. Χρησιμοποιήστε ξεχωριστό destination για κάθε job, ώστε παράλληλα requests να μη μπερδεύουν αποτελέσματα.
Ζητήματα ασφάλειας και απορρήτου
Αντιμετωπίστε archive names και payloads ως μη αξιόπιστα. Μην προσθέτετε ποτέ το ArchiveEntry.Name απευθείας στο destination path, επειδή absolute paths και parent-directory segments μπορούν να γράψουν έξω από τον προβλεπόμενο φάκελο. Το standard παράδειγμα χρησιμοποιεί Path.GetFileName; workflows που διατηρούν directories πρέπει να επιλύουν το full path και να επιβεβαιώνουν ότι παραμένει κάτω από το approved root.
Ορίστε limits για compressed input size, per-entry και total expanded size, entry count, processing time και concurrent jobs. Εξαγάγετε σε restricted temporary storage, καθαρίστε partial output μετά από failures, σαρώστε αρχεία όταν το απαιτεί η εφαρμογή και αποφύγετε να γράφετε σε logs private filenames ή file contents.
FAQ εξαγωγής WebP
Πώς εξάγω μόνο αρχεία WebP από ZIP archive σε C#;
Ανοίξτε το ZIP με Archive, διατρέξτε το Archive.Entries, φιλτράρετε matching entries με βάση την επέκταση .webp και καλέστε Extract για κάθε accepted destination path.
Επικυρώνει το Aspose.ZIP το περιεχόμενο ενός εξαγμένου αρχείου WebP;
Όχι. Η επέκταση είναι μόνο ένα πρώτο φίλτρο. Επικυρώστε το επαναφερόμενο αρχείο με component που κατανοεί περιεχόμενο WebP.
Μπορεί το ίδιο selection pattern να χρησιμοποιηθεί με 7Z, RAR ή TAR containers;
Ναι, αλλά κάθε container πρέπει να ανοίγει με την αντίστοιχη Aspose.ZIP archive class. Οι entry types και οι διαθέσιμες extraction methods μπορεί να διαφέρουν ανά archive format.
Πώς πρέπει να χειρίζονται τα duplicate WebP filenames;
Ορίστε τον κανόνα πριν από την extraction: απόρριψη duplicates, δημιουργία μοναδικών ονομάτων ή διατήρηση validated relative folder structure.
Σχετικοί οδηγοί εξαγωγής αρχείων δεδομένων
Περιηγηθείτε σε σελίδες C# για δομημένα, οριοθετημένα και text-based δεδομένα μέσα σε αρχεία.