Frage

ich versuchen GZipStream zu verwenden, um eine gz-Datei # mit c zu erstellen. mein Problem ist, dass ich eine Liste haben, die Strings enthält. und ich brauche eine passwortgeschützte ZIP-Datei zu erstellen, und setzen Sie in eine Textdatei, die Zeichenketten enthalten.
Ich will nicht die Text-Datei erstellen, zip es dann, und dann die Textdatei löschen. Ich möchte direkt ein Passwort geschützt Zip-Datei erstellen, die die Textdatei enthält.
irgendeine Hilfe?

EDIT: i mit den Zippen Sachen fertig bin. jetzt brauche ich für die erstellte ZIP-Datei einen Pass zu setzen. jede mögliche Hilfe?

War es hilfreich?

Lösung

Sie sollten mit berücksichtigen SharpZipLib . Es ist eine Open-Source .net Kompressions-Bibliothek. Es enthält Beispiele, wie entweder eine .gz oder eine .zip Datei zu erstellen. Beachten Sie, dass Sie direkt in der ZIP-Datei schreiben kann. Sie müssen nicht zuerst eine Zwischendatei auf der Festplatte erstellen müssen.

Edit: (als Antwort auf Ihre edit) SharpZipLib unterstützt zip auch Passwörter

.

Andere Tipps

Erstellen Sie einfach eine StreamWriter Einwickeln Ihre GZipStream und schreiben Text zu.

kann GZipStream verwendet werden, um eine .gz-Datei zu erstellen, aber das ist nicht das gleiche wie eine ZIP-Datei.

Für kennwortgeschützte Zip-Dateien erstellen, ich glaube, Sie zu einer Drittanbieter-Bibliothek gehen.

Hier ist, wie es zu tun mit DotNetZip ...

var sb = new System.Text.StringBuilder();
sb.Append("This is the text file...");
foreach (var item in listOfStrings)
    sb.Append(item);

// sb now contains all the content that will be placed into
// the text file entry inside the zip.

using (var zip = new Ionic.Zip.ZipFile())
{
    // set the password on the zip (implicitly enables encryption)
    zip.Password = "Whatever.You.Like!!"; 
    // optional: select strong encryption
    zip.Encryption = Ionic.Zip.EncryptionAlgorithm.WinZipAes256;
    // add an entry to the zip, specify a name, specify string content
    zip.AddEntry("NameOfFile.txt", sb.ToString());
    // save the file
    zip.Save("MyFile.zip");
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top