Extrakce obsahu J2K ze ZIP v .NET

Použijte Aspose.ZIP for .NET k otevření archivu ZIP, kontrole jeho položek a obnovení souborů J2K, které aplikace v C# skutečně potřebuje. J2K patří mezi obrázky a grafické soubory; na této stránce extrakce znamená výběr odpovídajících souborů z kontejneru ZIP a jejich zápis do řízeného cíle, nikoli převod interního obsahu souboru.

Tento postup se hodí pro příjem obrázků, předání designových podkladů, tvorbu náhledů a dokumentové pipeline. Aplikace může přeskočit nesouvisející položky, uplatnit limity pro velikost a cesty a předat schválené soubory další fázi bez rozbalení celého balíčku.

Jak extrahovat soubory J2K ze ZIP pomocí C#

Nainstalujte balíček Aspose.ZIP for .NET a přidejte namespace Aspose.Zip. Metadata položek jsou dostupná před zápisem, takže aplikace může zkontrolovat ArchiveEntry.Name, ArchiveEntry.IsDirectory a ArchiveEntry.UncompressedSize ještě před extrakcí.


Package Manager Console Command

PM> Install-Package Aspose.Zip

Otevřete ZIP pomocí Archive, projděte Archive.Entries, vyberte položky odpovídající .j2k a .j2c a pro každý schválený cíl zavolejte ArchiveEntry.Extract. Ukázky používají konečný název souboru nebo validované relativní cesty, aby názvy z archivu nemohly určovat místo zápisu.

Postup obnovení souborů J2K v C#

  • Určete cestu ke zdrojovému ZIP a vytvořte izolovaný výstupní adresář.
  • Otevřete balíček třídou Archive.
  • Projděte Archive.Entries místo okamžité extrakce všeho.
  • Vyberte položky odpovídající .j2k a .j2c nebo pravidlu daného formátu.
  • Sestavte cílovou cestu, která zůstane pod schváleným kořenem.
  • Odmítněte položky překračující nastavený limit po rozbalení.
  • Každou schválenou položku uložte pomocí ArchiveEntry.Extract.

Požadavky na systém

Před spuštěním příkladu ověřte, že prostředí obsahuje:

  • Podporovaný runtime .NET ve Windows, Linuxu nebo macOS.
  • Visual Studio, Rider, VS Code nebo jiné prostředí pro vývoj v C#.
  • Aspose.ZIP for .NET nainstalovaný přes NuGet nebo přidaný jako assembly reference.
  • Oprávnění ke čtení zdrojového ZIP a k zápisu do cílového adresáře.
  • Jasné limity velikosti, času a dočasného úložiště pro nedůvěryhodné vstupy.

Příklad C#: výběr souborů J2K v archivu ZIP

Ukázka otevře balíček ZIP, filtruje nedirektářové položky a zapíše odpovídající soubory do jednoho cíle nebo do bezpečné struktury podle potřeb formátu. V produkci definujte také deterministické pravidlo pro duplicitní názvy.

Extrakce souborů J2K ze ZIP - C#

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

string archivePath = Path.GetFullPath("package.zip");
string outputDirectory = Path.GetFullPath("extracted-j2k");
string[] allowedExtensions = { ".j2k", ".j2c" };
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}' exceeds the 100 MB extraction limit.");
        }

        string destinationPath = Path.Combine(outputDirectory, fileName);
        entry.Extract(destinationPath);
    }
}

Produkční poznámky k souborům J2K

Přípona je jen první filtr. Rozměry, barevná data, metadata a strukturu ověřte knihovnou pro práci s obrázky.

Samotná přípona není důkazem platného obsahu. Pokud další fáze soubor čte, zobrazuje nebo převádí, ověřte jej komponentou určenou pro daný formát. Pro každou úlohu použijte vlastní cílovou složku a nastavte pravidlo pro kolize názvů.

Bezpečnost a soukromí

S názvy položek i obsahem archivu zacházejte jako s nedůvěryhodným vstupem. Nepřipojujte ArchiveEntry.Name přímo k výstupnímu adresáři; položka může obsahovat absolutní cestu nebo průchod do nadřazené složky. Pokud zachováváte adresáře, vyhodnoťte výslednou cestu a ověřte, že zůstává pod schváleným kořenem.

Nastavte limity pro komprimovanou velikost, velikost po extrakci, počet položek, dobu běhu a souběžnost. Použijte omezené dočasné úložiště, po chybách uklízejte výstup a nelogujte soukromé názvy souborů, hesla ani obsah.

FAQ k extrakci J2K

Jak z archivu ZIP v C# extrahovat pouze soubory J2K?

Otevřete ZIP pomocí Archive, projděte Archive.Entries, použijte podmínku .j2k a .j2c nebo pravidlo formátu a zavolejte Extract pro každou schválenou výstupní cestu.

Ověřuje Aspose.ZIP obsah souboru J2K?

Ne. Aspose.ZIP obnoví soubor z archivu. Čtení, validace nebo převod obsahu J2K patří komponentě specializované na daný formát.

Lze stejný postup použít také pro 7Z, RAR nebo TAR?

Ano na úrovni principu, ale každý kontejner je nutné otevřít odpovídající třídou Aspose.ZIP. Typy položek a dostupné operace se mohou lišit.

Jak řešit duplicitní názvy souborů J2K?

Pravidlo určete před extrakcí: duplicitu odmítnout, vygenerovat jedinečný název nebo zachovat validovanou relativní adresářovou strukturu.