Εξαγωγή αρχείων MP3 από ZIP σε .NET

Χρησιμοποιήστε το Aspose.ZIP for .NET για να ελέγξετε ένα ZIP archive και να επαναφέρετε μόνο τα αρχεία MP3 που χρειάζεται η C# εφαρμογή σας. Σε αυτή τη σελίδα, extraction σημαίνει επιλογή των κατάλληλων αρχείων από ZIP container και εγγραφή τους σε ελεγχόμενο destination directory. Το Aspose.ZIP δεν ερμηνεύει ούτε μετατρέπει το εσωτερικό περιεχόμενο του αρχείου.

Η selective extraction ταιριάζει σε media ingestion, handoffs προς editing ή transcoding συστήματα, review workflows και uploaded production packages. Η εφαρμογή μπορεί να αγνοεί μη σχετικά entries, να επιβάλλει output και resource policies και να περνά approved files στο επόμενο service χωρίς να αποσυμπιέζει ολόκληρο το archive.

Εξαγωγή αρχείων MP3 από 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 με την επέκταση .mp3 και καλέστε ArchiveEntry.Extract για κάθε εγκεκριμένο destination. Το παράδειγμα μειώνει τα archived paths στο τελικό filename, ώστε τα entries να μην μπορούν να βγουν από το target directory.

Βήματα για επαναφορά αρχείων MP3 σε C#

  • Επιλύστε το source ZIP path και δημιουργήστε isolated output directory.
  • Ανοίξτε το package με την class Archive.
  • Διατρέξτε το Archive.Entries αντί να επεκτείνετε κάθε item.
  • Επιλέξτε entries των οποίων το τελικό filename χρησιμοποιεί την επέκταση .mp3.
  • Δημιουργήστε 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#: επιλογή αρχείων MP3 μέσα σε 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.

Εξαγωγή αρχείων MP3 από ZIP - C#

using Aspose.Zip;
using System;
using System.IO;

string archivePath = Path.GetFullPath("package.zip");
string outputDirectory = Path.GetFullPath("extracted-mp3");
string[] allowedExtensions = { ".mp3" };
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);
    }
}

Σημειώσεις υλοποίησης για MP3 packages

Η σωστή επέκταση δεν επιβεβαιώνει ότι container, codecs, διάρκεια ή metadata είναι έγκυρα. Αφήστε ένα media-aware component να ελέγξει το επαναφερόμενο αρχείο πριν από playback, transcoding ή δημοσίευση.

Το παράδειγμα μειώνει τα 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 εξαγωγής MP3

Πώς εξάγω μόνο αρχεία MP3 από ZIP archive σε C#;

Ανοίξτε το ZIP με Archive, διατρέξτε το Archive.Entries, φιλτράρετε matching entries με βάση την επέκταση .mp3 και καλέστε Extract για κάθε accepted destination path.

Επικυρώνει το Aspose.ZIP το περιεχόμενο ενός εξαγμένου αρχείου MP3;

Όχι. Η επέκταση είναι μόνο ένα πρώτο φίλτρο. Επικυρώστε το επαναφερόμενο αρχείο με component που κατανοεί περιεχόμενο MP3.

Μπορεί το ίδιο selection pattern να χρησιμοποιηθεί με 7Z, RAR ή TAR containers;

Ναι, αλλά κάθε container πρέπει να ανοίγει με την αντίστοιχη Aspose.ZIP archive class. Οι entry types και οι διαθέσιμες extraction methods μπορεί να διαφέρουν ανά archive format.

Πώς πρέπει να χειρίζονται τα duplicate MP3 filenames;

Ορίστε τον κανόνα πριν από την extraction: απόρριψη duplicates, δημιουργία μοναδικών ονομάτων ή διατήρηση validated relative folder structure.