Przegląd
Archiwa składające się z wpisów posiadają metodę createEntries umożliwiającą kompresję całego folderu. Metody takie uwzględniają strukturę katalogów i tworzą cyklicznie wszystkie podfoldery. Możesz także dodać pojedynczy wpis pliku do dowolnego podfolderu, gdziekolwiek do archiwum.Jak spakować folder
Jeśli chcesz utworzyć archiwum ZIP z całego folderu, zachowując strukturę, możesz użyć interfejsu API Aspose.Zip dla Java i poniższego kodu. Konstrukcja try-with-resources automatycznie zamyka zasób Archive po wykonaniu całego kodu, niezależnie od tego, czy wszystkie pliki zostały poprawnie zamknięte. Ścieżka określona w obiekcie File corpus wskazuje folder, który zostanie skompresowany. Dzięki createEntries każdy element archiwum jest dodawany osobno, zachowując w ten sposób oryginalną strukturę, która jest przechowywana w pliku o nazwie archive.zip. Należy zauważyć, że kod nie sprawdza istnienia folderu „D:\Data” ani obecności w nim plików. Jeśli katalog nie istnieje lub jest pusty, kod nie utworzy żadnego archiwum.
Metoda
CreateEntries
ma opcjonalny drugi parametr includeRootDirectory, który wskazuje, czy katalog główny musi zostać dołączony do archiwum. Wartość domyślna to true, więc w powyższym przykładzie wszystkie wpisy archiwalne będą znajdować się w folderze „Dane”. Jeśli chcesz, aby została dodana tylko zawartość katalogu, podaj tam wartość false.
Przykład - Utwórz archiwum z folderu:
try (Archive archive = new Archive()) {
File corpus = new File("D:\\Data");
archive.createEntries(corpus);
archive.save("archive.zip");
}
Poniższy przykład kodu tworzy archiwum ZIP zawierające dwa pliki: „image.bmp” i „lyrics.txt”. Zmienne fi1 i fi2 reprezentują te pliki. Metoda createEntry obiektu archiwum służy do dodawania każdego pliku do archiwum z określonymi ścieżkami: „data\pictures” dla „image.bmp” i „data\text” dla „lyrics.txt”. Podsumowując, ten kod tworzy archiwum ZIP o nazwie „archive.zip” zawierające dwa foldery „data\pictures” i „data\text”, każdy zawierający jeden z odpowiednich plików.
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");
}
Jak skompresować folder w 7-ZIP, przestrzegając jego struktury
Poniższy kod demonstruje, jak utworzyć archiwum 7Z i dodać do niego wszystkie pliki i foldery z określonego katalogu. Działa podobnie do archiwum w formacie pliku ZIP. CreateEntries to analogowa metoda archiwum 7Z. Zawiera także parametr includeRootDirectory. Ważne: zostanie zaimplementowane w Aspose.ZIP dla Java 24.4
try (SevenZipArchive archive = new SevenZipArchive()) {
File corpus = new File("D:\\Data");
archive.createEntries(corpus);
archive.save("archive.7z");
}
Jak skompresować folder w formacie TAR, zachowując jego strukturę
Kod tworzy archiwum TAR dla określonego katalogu. Aby to osiągnąć, wykorzystuje klasę TarArchive z interfejsu API Java Archive. Metoda
createEntries
dodaje wszystkie pliki i foldery z katalogu do archiwum, zachowując strukturę katalogów. Na koniec metoda save zapisuje zawartość archiwum do pliku „archive.tar”.
Próbka:
try (TarArchive archive = new TarArchive()) {
archive.createEntries("D:\\Data");
archive.save("archive.tar");
}
Dostarczony kod tworzy archiwum TAR o nazwie „archive.tar” zawierające dwa wpisy. Directory Archive - Dodaje wszystkie pliki i foldery z katalogu "D:\Data" do archiwum, zachowując strukturę katalogów. To skutecznie archiwizuje całą zawartość określonego katalogu. Oraz pojedynczy wpis pliku — dodaje do archiwum określony plik o nazwie „data.bin” z „wewnętrznego” podfolderu. Pozwala to na włączenie konkretnego pliku bez archiwizowania całej struktury katalogów. Podsumowując, ten kod tworzy archiwum TAR, które łączy zarówno archiwizację na poziomie katalogu, jak i dołączanie poszczególnych plików.
Przykład 2 – Połącz katalog archiwizacji i
pojedynczy plik
try (TarArchive archive = new TarArchive()) {
archive.createEntries("D:\\Data");
archive.createEntry("inner\\data.bin", "data.bin");
archive.save("archive.tar");
}
Inne obsługiwane funkcje Aspose.ZIP dla Java API
Dzięki bibliotece Aspose.ZIP w Javie możesz bezproblemowo wykonywać różne zadania związane z dokumentami w formacie ZIP. Niezależnie od tego, czy potrzebujesz konwertować formaty, scalać pliki, edytować zawartość czy wyodrębniać dane, Aspose.ZIP zapewnia wszechstronną funkcjonalność usprawniającą przepływ pracy i zwiększającą produktywność.
Support and Learning Resources
- Learning Resources
- Documentation
- Source Code
- API References
- Tutorial Videos
- Product Support
- Free Support
- Paid Support
- Blog
- Release Notes
- Why Aspose.ZIP for Java?
- Customers List
- Success Stories