Överblick

Arkiv som består av poster har createEntries-metoden för att komprimera hela mappen. Sådana metoder respekterar katalogstrukturen och komponerar återkommande för alla undermappar. Du kan också lägga till en enda filpost till en godtycklig undermapp var som helst i arkivet.

Hur man zippar en mapp

Om du vill skapa ett ZIP-arkiv från en hel mapp med bibehållen struktur kan du använda Aspose.Zip API för Java och följande kod. Konstruktionen try-with-resources stänger automatiskt arkivresursen efter att all kod har körts, oavsett om alla filer stängs ordentligt. Sökvägen som anges i File corpus-objektet indikerar mappen som kommer att komprimeras. Med createEntries läggs varje element i arkivet till separat, vilket bevarar den ursprungliga strukturen, som lagras i en fil som heter archive.zip. Det är viktigt att notera att koden inte kontrollerar förekomsten av mappen "D:\Data" eller förekomsten av filer i den. Om katalogen inte finns eller är tom kommer koden inte att skapa något arkiv.
CreateEntries -metoden har en valfri andra parameter includeRootDirectory som indikerar om rotkatalogen måste inkluderas i arkivet. Standard är sant, så i ovanstående exempel kommer alla arkivposter att finnas i mappen "Data". Om du vill att endast kataloginnehåll ska läggas till, skicka false dit.
Exempel - Skapa arkiv från mapp:

    try (Archive archive = new Archive()) {
        File corpus = new File("D:\\Data");
        archive.createEntries(corpus);
        archive.save("archive.zip");
    }

Följande kodexempel skapar ett ZIP-arkiv med två filer: "image.bmp" och "lyrics.txt". Variablerna fi1 och fi2 representerar dessa filer. Metoden createEntry för arkivobjektet används för att lägga till varje fil till arkivet med de angivna sökvägarna: "data\pictures" för "image.bmp" och "data\text" för "lyrics.txt". Sammanfattningsvis skapar denna kod ett ZIP-arkiv med namnet "archive.zip" som innehåller två mappar, "data\pictures" och "data\text", var och en med en av respektive filer.

    try (Archive archive = new Archive()) {
        File fi1 = new File("image.bmp");
        File fi2 = new File("lyrics.txt");
        archive.createEntry("data\\pictures\\photo.bmp", fi1);
        archive.createEntry("data\\text\\song.txt", fi2);
        archive.save("archive.zip");
    }

Hur man komprimerar mapp i 7-ZIP med respekt för dess struktur

Följande kod visar hur man skapar ett 7Z-arkiv och lägger till alla filer och mappar från den angivna katalogen till det. Det fungerar på samma sätt som ett arkiv med ZIP-filformatet. CreateEntries är den analoga metoden för 7Z-arkiv. Den har också parametern includeRootDirectory. Viktigt: kommer att implementeras i Aspose.ZIP för Java 24.4

    try (SevenZipArchive archive = new SevenZipArchive()) {
        File corpus = new File("D:\\Data");
        archive.createEntries(corpus);
        archive.save("archive.7z");
    }

Hur man komprimerar en mapp i TAR samtidigt som man behåller dess struktur

Koden skapar ett TAR-arkiv för den angivna katalogen. Den använder TarArchive-klassen från Java Archive API för att uppnå detta. Metoden createEntries lägger till alla filer och mappar från katalogen till arkivet, bevara katalogstrukturen. Slutligen skriver sparmetoden arkivets innehåll till filen "archive.tar".
Exempel:

    try (TarArchive archive = new TarArchive()) {
        archive.createEntries("D:\\Data");
        archive.save("archive.tar");
    }

Den tillhandahållna koden skapar ett TAR-arkiv med namnet "archive.tar" som innehåller två poster. Katalogarkiv - Det lägger till alla filer och mappar från katalogen "D:\Data" till arkivet och bevarar katalogstrukturen. Detta arkiverar effektivt hela innehållet i den angivna katalogen. Och Single File Entry - Den lägger till en specifik fil med namnet "data.bin" från den "inre" undermappen till arkivet. Detta gör det möjligt att inkludera en viss fil utan att arkivera hela katalogstrukturen. Sammanfattningsvis skapar denna kod ett TAR-arkiv som kombinerar både arkivering på katalognivå och individuell filinkludering.
Exempel 2 – Kombinera arkiveringskatalog och enkel fil

    try (TarArchive archive = new TarArchive()) {
        archive.createEntries("D:\\Data");
        archive.createEntry("inner\\data.bin", "data.bin");
        archive.save("archive.tar");
    }

Andra Aspose.ZIP för Java API-funktioner som stöds

Med Aspose.ZIP-biblioteket i Java kan du sömlöst hantera olika uppgifter relaterade till ZIP-fildokument. Oavsett om du behöver konvertera format, slå samman filer, redigera innehåll eller extrahera data, erbjuder Aspose.ZIP omfattande funktionalitet för att effektivisera ditt arbetsflöde och förbättra produktiviteten.

  

Support and Learning Resources

  
  

Aspose.Zip offers individual archive processing APIs for other popular development environments, listed below: