Estrarre contenuto KFX da ZIP in .NET
Usa Aspose.ZIP for .NET per aprire un archivio ZIP, ispezionarne le voci e ripristinare solo file KFX necessari alla tua applicazione C#. In questa pagina, estrarre significa individuare gli elementi con estensione .kfx dentro il contenitore ZIP e salvarli in una destinazione controllata. Aspose.ZIP ripristina il file memorizzato nell’archivio; non interpreta né converte il contenuto interno del file.
L’estrazione selettiva è utile per ingestione documentale, elaborazione di caricamenti, pacchetti di report e sistemi di gestione contenuti. L’applicazione può ignorare le voci non pertinenti, verificare nomi e dimensioni, quindi passare i file approvati al componente successivo senza decomprimere l’intero pacchetto.
Come estrarre file KFX da ZIP con C#
Installa il
pacchetto Aspose.ZIP for .NET
e importa il namespace Aspose.Zip. I metadati dell’archivio sono disponibili prima della scrittura, quindi l’applicazione può controllare ArchiveEntry.Name, ArchiveEntry.IsDirectory e ArchiveEntry.UncompressedSize prima di salvare file di documento.
Package Manager Console Command
PM> Install-Package Aspose.Zip
Dopo l'installazione, apri lo ZIP con Archive, scorri Archive.Entries, seleziona le voci non directory con estensione .kfx e chiama ArchiveEntry.Extract per ogni destinazione approvata. L'esempio usa solo il nome file finale, quindi i percorsi archiviati non possono scrivere fuori dalla cartella di destinazione.
Passaggi per estrarre file KFX in C#
- Definisci il percorso dello ZIP sorgente e crea una directory di output isolata.
- Apri il pacchetto con la classe
Archive. - Scorri
Archive.Entriesinvece di estrarre subito l’intero pacchetto. - Ignora le directory e seleziona i nomi file con estensione
.kfx. - Crea un percorso di destinazione che resti dentro la root di output approvata.
- Rifiuta le voci che superano il limite configurato per la dimensione estratta.
- Salva ogni voce approvata con
ArchiveEntry.Extract.
Requisiti di Sistema
Prima di eseguire l’esempio, verifica che l’ambiente includa:
- Un runtime .NET supportato su Windows, Linux o macOS.
- Visual Studio, JetBrains Rider, Visual Studio Code o un altro ambiente di sviluppo C#.
- Aspose.ZIP for .NET installato tramite NuGet o referenziato come assembly.
- Accesso in lettura allo ZIP sorgente e accesso in scrittura alla directory di destinazione.
- Limiti chiari per dimensioni, tempo di esecuzione e spazio temporaneo con archivi non attendibili.
Esempio C#: estrarre file KFX selezionati da ZIP
Il codice apre un pacchetto ZIP, ignora le directory, filtra le voci in base all’estensione consentita e scrive i file corrispondenti in una sola directory di output. Scartare i percorsi archiviati evita che segmenti di directory padre controllino la destinazione. In produzione va definita anche una regola deterministica per i nomi duplicati.
Estrarre file KFX da ZIP - C#
using Aspose.Zip;
using System;
using System.IO;
string archivePath = Path.GetFullPath("package.zip");
string outputDirectory = Path.GetFullPath("extracted-kfx");
string[] allowedExtensions = { ".kfx" };
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(
$"La voce '{fileName}' supera il limite di estrazione di 100 MB.");
}
string destinationPath = Path.Combine(outputDirectory, fileName);
entry.Extract(destinationPath);
}
}
Note di implementazione per file KFX
Il filtro per estensione identifica solo file candidati; non dimostra che il contenuto sia valido o sicuro. Se il file verrà visualizzato, indicizzato o convertito, convalida struttura, codifica, conformità e contenuto con un componente documentale.
L’esempio appiattisce intenzionalmente i percorsi archiviati. Se due voci accettate hanno lo stesso nome file finale, ArchiveEntry.Extract può sovrascrivere un file esistente. Definisci la policy prima dell’estrazione: rifiutare i duplicati, generare nomi univoci oppure conservare una struttura relativa già validata. Usa una destinazione separata per ogni job per evitare che richieste parallele mescolino i risultati.
Sicurezza e privacy
Tratta lo ZIP caricato, i nomi delle voci e il contenuto come input non attendibili. Non combinare direttamente ArchiveEntry.Name con la directory di output: una voce può contenere percorsi assoluti o segmenti che risalgono a directory padre. L’esempio usa Path.GetFileName; se devi conservare le cartelle, risolvi il percorso finale e verifica che rimanga dentro la root approvata.
Limita dimensione compressa, dimensione estratta per voce e totale, numero di voci, tempo di elaborazione e job paralleli. Usa spazio temporaneo con permessi limitati, rimuovi output parziali dopo un errore ed evita di registrare password, nomi file privati o contenuto estratto.
FAQ sull'estrazione di file KFX
Come estraggo solo file KFX da un archivio ZIP in C#?
Apri lo ZIP con Archive, scorri Archive.Entries, filtra le voci non directory in base all'estensione .kfx e chiama Extract per ogni percorso di output validato.
Aspose.ZIP convalida il contenuto interno del file KFX?
No. Aspose.ZIP ripristina il file memorizzato nell'archivio. Lettura, validazione o conversione del contenuto spettano a un componente specializzato per quel formato.
Lo stesso modello di selezione funziona con contenitori 7Z, RAR o TAR?
Il concetto è lo stesso, ma ogni contenitore deve essere aperto con la classe Aspose.ZIP corrispondente. Tipi di voce e operazioni disponibili possono variare in base al formato.
Come gestire nomi file KFX duplicati?
Definisci la regola prima dell'estrazione: rifiutare duplicati, generare nomi univoci o conservare una struttura di cartelle relativa e validata.
Guide Correlate per l'Estrazione di Documenti
Consulta le guide C# per documenti e formati di pubblicazione spesso conservati negli archivi.