Tworzenie pliku ZIP z plików MSG w .NET

Biblioteka Aspose.ZIP for .NET pozwala aplikacji C# utworzyć archiwum ZIP z plików MSG bez uruchamiania 7-Zip, WinRAR ani innego programu komputerowego. Utwórz obiekt Archive, dodaj każdy plik jako wpis, dołącz wymagane zasoby i wywołaj Save, aby zapisać gotowe archiwum.

API pakuje wyłącznie wskazane pliki i nie zmienia takich elementów jak wiadomości, nagłówki, wydarzenia, kontakty, załączniki i metadane. Dzięki temu plik poczty lub kalendarza wraz z materiałami dodatkowymi można przekazać jako jeden przenośny pakiet bez naruszania danych źródłowych.

Przykład C#: kompresowanie pliku MSG do ZIP

Ten zwięzły przykład dodaje jeden plik MSG do nowego archiwum i zapisuje wynik jako archived_result.zip. Ustaw dir na katalog zawierający plik źródłowy.

Kompresowanie plików MSG — C#

var dir = "full directory path";
using (var arch = new Archive())
{
   arch.CreateEntry("filename.msg", dir+"file.msg");
   arch.Save(dir+"archived_result.zip");
}

Instalowanie Aspose.ZIP for .NET

Zainstaluj pakiet NuGet Aspose.ZIP i dodaj odwołanie do niego w projekcie .NET. Archiwum jest tworzone wewnątrz procesu aplikacji, więc osobny program ZIP nie jest potrzebny.

Konsola Menedżera pakietów

PM> Install-Package Aspose.Zip

Archiwizowanie jednego pliku MSG

Dodaj jeden plik źródłowy w formacie MSG do nowego obiektu Archive i zapisz wynik. Nadaj wpisowi czytelną nazwę, jeśli plik ZIP przeznaczony do pobrania ma pokazywać prostszą lub ujednoliconą nazwę.

Pakowanie wielu plików MSG

Wywołaj CreateEntry dla każdego pliku MSG przed zapisaniem archiwum. Pliki z różnych lokalizacji źródłowych można uporządkować we wspólnym katalogu mail/ wewnątrz ZIP.

Pakowanie plików MSG z zasobami dodatkowymi

Dodaj pliki MSG razem z takimi materiałami jak załączniki, dzienniki eksportu, manifesty i instrukcje przechowywania. Zachowaj względne ścieżki oczekiwane przez proces odbiorcy, aby pakiet był gotowy do użycia po rozpakowaniu.

Zapisywanie lub przesyłanie pakietu MSG

Zapisz ukończony ZIP w pliku lokalnym, wyślij go w odpowiedzi ASP.NET albo przekaż bezpośrednio do magazynu w chmurze przez strumień z możliwością zapisu. Struktura i nazwy wpisów pozostają takie same niezależnie od miejsca docelowego.

Jak utworzyć archiwum ZIP z plików MSG w C#

  1. Zainstaluj Aspose.ZIP for .NET i dodaj odwołanie do pakietu.
  2. Określ pliki MSG oraz wszystkie zasoby, które powinny znaleźć się w pakiecie.
  3. Utwórz instancję Archive dla nowego kontenera ZIP.
  4. Wywołaj CreateEntry dla każdego pliku źródłowego i przypisz mu docelową ścieżkę w archiwum.
  5. Skonfiguruj kompresję lub szyfrowanie, jeśli wymaga tego sposób dostarczenia.
  6. Wywołaj Save ze ścieżką wyjściową lub strumieniem z możliwością zapisu, a następnie prawidłowo zwolnij zasoby.

Dodaj wszystkie planowane wpisy przed zapisaniem. Metoda CreateEntries może rekurencyjnie dołączyć przygotowane drzewo katalogów, natomiast osobne wywołania CreateEntry dają większą kontrolę nad nazwami i wyborem plików.

Pakowanie do ZIP nie konwertuje formatu MSG

Utworzenie archiwum ZIP z pliku MSG jest operacją archiwizacji, a nie konwersją. Plik `.msg` zachowuje format MSG, a po rozpakowaniu odzyskiwane są te same bajty. Aspose.ZIP nie interpretuje ani nie przepisuje takich danych jak wiadomości, nagłówki, wydarzenia, kontakty, załączniki i metadane.

Jeżeli celem jest konwersja plików MSG do EML lub MBOX, użyj wyspecjalizowanej biblioteki konwersji. Ta metoda tworzenia ZIP służy do grupowania, przesyłania, przechowywania i ochrony istniejących plików.

Dołączanie plików powiązanych z MSG

Kompletny pakiet MSG może oprócz pliku głównego zawierać załączniki, dzienniki eksportu, manifesty i instrukcje przechowywania. Aspose.ZIP traktuje każdy element jako osobny wpis i nie analizuje pliku MSG w celu automatycznego wykrywania zależności. Aplikacja powinna ustalić wymagane zasoby i dodać je jawnie.

Archiwa poczty mogą zawierać dane osobowe i poufne załączniki; zastosuj właściwe zasady przechowywania i kontroli dostępu. Przed utworzeniem archiwum sprawdź obecność wszystkich wymaganych elementów i zachowaj względny układ oczekiwany przez oprogramowanie odbiorcy.

Kontrolowanie ścieżek i nazw w pakiecie ZIP zawierającym pliki MSG

Ścieżka źródłowa wskazuje platformie .NET, skąd odczytać plik, a nazwa wpisu określa jego położenie w ZIP. Lokalny plik z dowolnego katalogu roboczego można zatem zapisać jako `mail/plik.msg` bez ujawniania lokalnej ścieżki.

W przenośnych ścieżkach ZIP używaj ukośników, konsekwentnie stosuj wielkie i małe litery i odrzucaj ścieżki bezwzględne oraz segmenty wskazujące katalog nadrzędny, takie jak ../. Sprawdzaj też zduplikowane nazwy, gdy pliki pochodzą z różnych katalogów. Czytelny pakiet zwykle zawiera katalog głównych danych, katalog zasobów oraz plik README.txt na najwyższym poziomie.

Oczekiwany stopień kompresji plików MSG

Tekst i nagłówki mogą kompresować się dobrze, lecz wcześniej skompresowane załączniki zwykle przynoszą niewielką dodatkową oszczędność. Nawet przy niewielkiej oszczędności miejsca ZIP nadal zapewnia jeden plik do przesłania, określoną strukturę katalogów, informacje ułatwiające kontrolę integralności i opcjonalną ochronę hasłem.

Deflate jest praktycznym ustawieniem domyślnym zapewniającym szeroką zgodność. Tryb bez kompresji może być lepszy, gdy liczy się szybkość pakowania, a większość wpisów jest już skompresowana. Wydajność należy mierzyć na reprezentatywnych pakietach zamiast zakładać jeden współczynnik dla wszystkich plików MSG.

Ochrona archiwum ZIP z plikami MSG za pomocą hasła

Poufne wpisy można zabezpieczyć tradycyjnym algorytmem ZipCrypto albo szyfrowaniem AES. Wybierz AES, gdy obsługuje go oprogramowanie odbiorcy; ZipCrypto stosuj tylko wtedy, gdy najważniejsza jest zgodność ze starszymi narzędziami.

Hasła pobieraj z bezpiecznej konfiguracji i nigdy nie zapisuj ich w kodzie źródłowym ani dziennikach. Przekazuj hasło innym kanałem niż archiwum i przed dystrybucją potwierdź, że odbiorca może użyć wybranej metody szyfrowania.

Wskazówki produkcyjne dla archiwów MSG

- Przed rozpoczęciem sprawdź, czy istnieją wszystkie pliki źródłowe i zasoby dodatkowe. - Dla niezaufanych żądań ogranicz liczbę plików, rozmiar pojedynczego pliku, łączny rozmiar wejścia i dozwolone lokalizacje. - Normalizuj oraz weryfikuj nazwy wpisów, aby nie dopuścić do niebezpiecznych ścieżek podczas rozpakowywania. - Gdy częściowy wynik byłby szkodliwy, zapisuj do lokalizacji tymczasowej i publikuj archiwum dopiero po powodzeniu metody `Save`. - Używaj strumienia z możliwością zapisu przy zwracaniu archiwum ZIP z ASP.NET lub wysyłaniu go bezpośrednio do magazynu obiektowego. - Zawsze jawnie zwalniaj zasoby archiwów i strumieni; informacje o brakujących zależnościach zapisuj bez ujawniania danych poufnych ani ścieżek lokalnych. - Ustal stałą kolejność wpisów i znaczniki czasu, jeżeli kompilacja wymaga powtarzalnego wyniku.

Tworzenie ZIP z plików MSG online

Potrzebujesz pakietu bez pisania kodu? Użyj bezpłatnego internetowego kreatora ZIP w przeglądarce.

  Nie jest wymagany program do archiwizacji na komputerze.
  Nie jest wymagana konfiguracja API ani kod C#.
  Prześlij pliki MSG i powiązane zasoby.
  Pobierz utworzone archiwum ZIP.

Materiały dotyczące Aspose.ZIP for .NET

Często zadawane pytania

1. Jak utworzyć plik ZIP z pliku MSG w C#?

Utwórz obiekt Archive, wywołaj CreateEntry z nazwą wpisu i ścieżką do pliku MSG, a następnie wywołaj Save ze ścieżką docelową lub strumieniem.

2. Czy mogę dodać wiele plików MSG do jednego archiwum ZIP?

Tak. Wywołaj CreateEntry dla każdego pliku przed zapisaniem i nadaj każdemu wpisowi unikatową nazwę w archiwum.

3. Czy powiązane pliki są dodawane automatycznie?

Nie. Aspose.ZIP pakuje pliki wskazane przez aplikację, lecz nie analizuje formatu MSG w celu znalezienia zależności. Każdy wymagany zasób dodaj jawnie.

4. Czy utworzenie ZIP konwertuje MSG do innego formatu?

Nie. Plik MSG pozostaje w ZIP bez zmian. Konwersja do EML lub MBOX jest osobną operacją.

5. Czy archiwum ZIP zawierające pliki MSG można zaszyfrować?

Tak. Aspose.ZIP obsługuje ochronę hasłem za pomocą ZipCrypto i AES. Wybierz metodę obsługiwaną przez oprogramowanie używane przez odbiorców do rozpakowania archiwum.