OFT-tartalom kicsomagolása ZIP-ből .NET-ben
Az Aspose.ZIP for .NET segítségével megnyithat egy ZIP archívumot, végigjárhatja a bejegyzéseit, és csak azokat a OFT-fájlokat állíthatja vissza, amelyekre a C# alkalmazásnak szüksége van. Ezen az oldalon a kicsomagolás azt jelenti, hogy a ZIP konténerben tárolt, .oft kiterjesztésű elemeket megkeressük, majd egy ellenőrzött célmappába írjuk. Az Aspose.ZIP az archívumban tárolt fájlt állítja vissza; a fájl belső tartalmát nem értelmezi és nem konvertálja.
A szelektív kicsomagolás különosen hasznos levelezesi exportok, ugyfelszolgaláti csomagok, megfelelősegi archívumok és migrációs folyamatok feldolgozásakor. Az alkalmazás kihagyhatja a nem relevans bejegyzéseket, ellenőrizheti a neveket és a méreteket, majd a jóváhagyott fájlokat továbbadhatja a következő üzleti komponensnek anélkül, hogy a teljes csomagot ki kellene bontania.
Hogyan csomagolhat ki OFT-fájlokat ZIP-ből C# használatával
Telepítse az
Aspose.ZIP for .NET csomagot
, majd hivatkozzon az Aspose.Zip névtérre. Az archívum metaadatai meg a fájlok írása előtt elérhetők, így az alkalmazás ellenőrizheti az ArchiveEntry.Name, ArchiveEntry.IsDirectory és ArchiveEntry.UncompressedSize értékeket, mielőtt bármilyen e-mail fájlokat mentene.
Package Manager Console Command
PM> Install-Package Aspose.Zip
A telepítés után nyissa meg a ZIP-et az Archive osztállyal, járja be az Archive.Entriés gyűjteményt, válassza ki a(z) .oft kiterjesztésű, nem könyvtár típusú bejegyzéseket, majd hívja meg az ArchiveEntry.Extract metódust minden jóváhagyott célútvonalra. A példa csak a végső fájlnévet használja, ezert az archívumban tárolt útvonalák nem írhatnak a célmappán kívülre.
OFT-fájlok kicsomagolásanak lépései C#-ban
- Határozza meg a forrás ZIP útvonalát, és hozzon létre egy elkülönített kimeneti könyvtárat.
- Nyissa meg a csomagot az
Archiveosztállyal. - A teljes csomag azonnali kibontása helyett járja be az
Archive.Entriesgyűjteményt. - Hagyja ki a könyvtárakat, és csak a(z)
.oftkiterjesztésű fájlnéveket válassza ki. - Építsen olyan célútvonalát, amely az engedelyezett kimeneti gyökéren belül marad.
- Utasítsa el a beállított kicsomagolt méretkorlátot meghaládó bejegyzéseket.
- Mentsen minden jóváhagyott bejegyzést az
ArchiveEntry.Extractmetódussal.
Rendszerkövetelmények
A példa futtatasa előtt ellenőrizze, hogy a környezet tartalmazza-e a következőket:
- Támogatott .NET futtatókörnyezet Windows, Linux vagy macOS rendszeren.
- Visual Studio, JetBrains Rider, Visual Studio Code vagy más C# fejlesztőkörnyezet.
- NuGeten keresztül telepített vagy assemblyként hivatközött Aspose.ZIP for .NET.
- Olvasási jogosultság a forrás ZIP-hez és írási jogosultság a célkönyvtárhoz.
- Világos méret-, futásiidő- és ideiglenes tárhelykorlátok nem megbízható archívumokhoz.
C# példa: kijelölt OFT-fájlok kicsomagolása ZIP-ből
A kód megnyit egy ZIP csomagot, kiszűri a nem könyvtár típusú bejegyzéseket a megengedett kiterjesztés alapján, és az egyezo fájlokat egyetlen kimeneti könyvtárba írja. Az archivalt útvonalák eldobasa megakadalyozza, hogy szülő könyvtári szegmensek irányítsák a célhelyet. Elés kódban determinisztikus szabályt kell adni az azonos fájlnévekre is.
OFT-fájlok kicsomagolása ZIP-ből - C#
using Aspose.Zip;
using System;
using System.IO;
string archivePath = Path.GetFullPath("package.zip");
string outputDirectory = Path.GetFullPath("extracted-oft");
string[] allowedExtensions = { ".oft" };
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(
$"A(z) '{fileName}' bejegyzés meghaládja a 100 MB-os kicsomagolási korlátot.");
}
string destinationPath = Path.Combine(outputDirectory, fileName);
entry.Extract(destinationPath);
}
}
Megvalósítási megjegyzések OFT-fájlokhoz
A kiterjesztés szerinti szurés csak jelölt fájlokat azonosít; nem bizonyitja, hogy a tartalom ervenyés vagy biztonságos. Az üzenetfejleceket, mellékleteket, kódolást és ésetlegés szemelyés adatokat e-mail feldolgozó komponenssel kezeld és validáld.
A példa szándékosan kilaposítja az archívumban tárolt útvonalakat. Ha két elfogadott bejegyzés végső fájlnéve azonos, az ArchiveEntry.Extract felülírhat egy már létező fájlt. Határozzon meg egyértelmű szabályt: utasítsa el a duplikátumot, generáljon egyedi nevet, vagy őrizzen meg egy előzetesen validált relatív mappastruktúrát. Minden feldolgozási feladathoz használjon külön célkönyvtárat.
Biztonsági és adatvédelmi szempontok
A feltöltött ZIP-et, a bejegyzésneveket és a tartalmat kezelje nem megbízható bemenetkent. Ne fűzze az ArchiveEntry.Name értéket közvetlenül a kimeneti könyvtárhoz, mert egy bejegyzés abszolút útvonalat vagy szülő könyvtárra mutato szegmenseket tartalmazhat. A példa a Path.GetFileName metódust használja; ha meg kell orizni a mappákat, oldja fel a végső útvonalát, és ellenőrizze, hogy az engedelyezett gyökéren belül marad-e.
Korlátozza a tömörített méretet, a bejegyzésenkénti és teljes kicsomagolt méretet, a bejegyzések számát, a feldolgozási időt és a párhuzamos feladatokat. Használjon korlátozott jogosultságú ideiglenes tárhelyet, hiba után törölje a részeredményeket, és ne naplózzon jelszavakat, privát fájlnéveket vagy kicsomagolt tartalmat.
Gyakori kérdések OFT-fájlok kicsomagolásarol
Hogyan csomagolhatok ki csak OFT-fájlokat egy ZIP archívumból C#-ban?
Nyissa meg a ZIP-et az Archive osztállyal, járja be az Archive.Entriés gyűjteményt, szűrje a nem könyvtár típusú bejegyzéseket a(z) .oft kiterjesztés alapján, majd hívja meg az Extract metódust minden ellenőrzött kimeneti útvonalra.
Az Aspose.ZIP validálja a kinyert OFT-fájl belső tartalmát?
Nem. Az Aspose.ZIP az archívumban tárolt fájlt állítja vissza. A tartalom olvasasa, validálása vagy konvertalása az adott formátumot ismerő specializált komponens feladata.
Ugyanez a kiválasztási minta működik 7Z, RAR vagy TAR konténerekkel is?
Az elv ugyanaz, de minden konténert a hozzá tartozó Aspose.ZIP archívumosztállyal kell megnyitni. A bejegyzéstipusok és az elérhető kicsomagolási műveletek formátumonként eltérhetnek.
Hogyan kezeljem az azonos nevű OFT-fájlokat?
A kicsomagolás előtt döntse el a szabályt: utasítsa el a duplikátumokat, generáljon egyedi neveket, vagy őrizzen meg egy validált relatív mappastruktúrát.
Kapcsolódó e-mail kicsomagolási útmutatók
Böngészd az archívumokban gyakran találhato levelezesi formátumok C# kinyeresi oldaláit.