Podczas pracy z archiwami z poziomu aplikacji .NET może zaistnieć potrzeba manipulowania plikami w ZIP. W poprzednim poście widziałeś, jak dodawać pliki/foldery w archiwum ZIP. W tym artykule dowiesz się, jak programowo usuwać pliki w archiwach ZIP w języku C#. Więc zacznijmy.
C# .NET API do usuwania plików w archiwach ZIP
Aspose.ZIP for .NET to potężny interfejs API, który zapewnia szeroki zakres funkcji archiwizacji. Pozwala tworzyć i manipulować archiwami popularnych formatów, w tym ZIP, TAR, 7z i GZip. Użyjemy tego interfejsu API do dynamicznego usuwania plików w archiwach ZIP. Możesz zainstalować interfejs API z NuGet lub pobrać bibliotekę DLL i odwołać się do niej ręcznie.
PM> Install-Package Aspose.Zip
Usuń pliki w archiwach ZIP w C#
Istnieją dwa sposoby usuwania plików w archiwum ZIP za pomocą Aspose.ZIP for .NET. Jeden używa indeksu pliku, podczas gdy drugi używa klasy ArchiveEntry. Zobaczmy, jak wykorzystać obie wyżej wymienione metody.
Usuń plik w ZIP za pomocą ArchiveEntry
Aspose.ZIP for .NET reprezentuje każdy plik/folder wewnątrz ZIP jako obiekt ArchiveEntry, a wszystkie pliki i foldery tworzą kolekcję obiektów ArchiveEntry. W ten sposób, aby usunąć plik z ZIP, możesz uzyskać dostęp do odpowiedniego obiektu ArchiveEntry i usunąć go z kolekcji. Poniżej przedstawiono kroki, aby usunąć plik z archiwum ZIP w języku C#.
- Załaduj archiwum ZIP przy użyciu klasy Archive.
- Przejrzyj wpisy w kolekcji Archive.Entries.
- Filtruj żądane pliki/foldery i dodaj je do listy.
- Usuń każdy wpis z listy za pomocą metody Archive.DeleteEntry(ArchvieEntry).
- Zapisz zaktualizowane archiwum ZIP przy użyciu metody Archive.Save(string).
Poniższy przykładowy kod pokazuje, jak usunąć pliki w archiwum ZIP w języku C#.
// Załaduj archiwum ZIP
using (var archive = new Archive("Archives/archive.zip"))
{
// Lista do przechowywania plików do usunięcia
List<ArchiveEntry> entriesToDelete = new List<ArchiveEntry>();
// Zapętlaj wpisy ZIP
foreach(ArchiveEntry entry in archive.Entries)
{
// Dodaj plik/folder do listy
if(entry.Name.ToLower().Contains("source"))
{
entriesToDelete.Add(entry);
}
}
// Usuń wszystkie wymienione wpisy
foreach(var entry in entriesToDelete)
{
archive.DeleteEntry(entry);
}
// Zapisz zaktualizowane archiwum
archive.Save("Archives/updated-archive.zip");
}
Usuń plik w ZIP za pomocą indeksu
Możesz także usunąć wpisy ZIP, korzystając z ich indeksu. Poniżej przedstawiono kroki, aby usunąć plik/folder z archiwum ZIP przy użyciu jego indeksu.
- Załaduj archiwum ZIP przy użyciu klasy Archive.
- Usuń plik, określając indeks w metodzie Archive.DeleteEntry(int).
- Zapisz zaktualizowane archiwum ZIP przy użyciu metody Archive.Save(string).
Poniższy przykładowy kod C# pokazuje, jak usunąć plik z archiwum ZIP przy użyciu jego indeksu.
// Załaduj archiwum ZIP
using (var archive = new Archive("Archives/archive.zip"))
{
// Usuń plik według jego indeksu
archive.DeleteEntry(0);
// Zapisz zaktualizowane archiwum
archive.Save("Archives/updated-archive.zip");
}
Uzyskaj bezpłatną licencję API
Możesz używać Aspose.ZIP for .NET bez ograniczeń ewaluacyjnych, otrzymując bezpłatną licencję tymczasową.
Wniosek
W tym artykule nauczyłeś się, jak usuwać pliki z archiwów ZIP w języku C#. Za pomocą próbek kodu widzieliśmy, jak usuwać pliki przy użyciu klasy ArchiveEntry lub indeksu. Jeśli chcesz dowiedzieć się więcej o Aspose.ZIP for .NET, możesz odwiedzić dokumentację. Możesz także zadawać pytania za pośrednictwem naszego forum.