Jak mogę tworzyć archiwa 7-Zip z mojej aplikacji konsoli C #? Muszę mieć możliwość wypakowania archiwów za pomocą zwykłego, szeroko dostępnego programu 7-Zip .
Oto moje wyniki z przykładami podanymi jako odpowiedzi na to pytanie
- „Wyłuskiwanie” do 7z.exe - to najprostsze i najskuteczniejsze podejście i mogę potwierdzić, że ładnie działa . Jak wspomina workmad3 , muszę tylko zagwarantować, że 7z.exe jest zainstalowany na wszystkich maszynach docelowych, co mogę zagwarantować.
- 7Zip w kompresji pamięci - dotyczy to kompresji plików cookie „w pamięci” przed wysłaniem do klienta; ta metoda wydaje się nieco obiecująca. Metody opakowujące (opakowanie LZMA SDK ) zwracają typ
byte[]
. Kiedy piszębyte[]
tablicę do pliku, nie mogę jej wyodrębnić za pomocą 7-Zip (File.7z is not supported archive
). - 7zSharp Wrapper (znaleziony w CodePlex) - otacza 7z exe / LZMA SDK . Odwołałem się do projektu z mojej aplikacji i pomyślnie utworzyłem kilka plików archiwum, ale nie mogłem wyodrębnić plików za pomocą zwykłego programu 7-Zip (
File.7z is not supported archive
). - 7Zip SDK aka LZMA SDK - myślę, że nie jestem wystarczająco inteligentny, aby dowiedzieć się, jak tego użyć (dlatego opublikowałem tutaj) ... Wszelkie działające przykłady kodu demonstrujące tworzenie archiwum 7zip, które można wyodrębnić przez zwykły program 7zip?
- Interfejs CodeProject C # (.NET) dla bibliotek DLL archiwum 7-Zip - obsługuje tylko wyodrębnianie z archiwów 7zip ... Muszę je utworzyć!
- SharpZipLib - zgodnie z ich FAQ , SharpZipLib nie obsługuje 7zip.