4

GZipStream を使用して、c# を使用して gz ファイルを作成しようとしています。私の問題は、文字列を含むリストがあることです。パスワードで保護された zip ファイルを作成し、その中に文字列を含むテキスト ファイルを入れる必要があります。
テキストファイルを作成してから圧縮してから、テキストファイルを削除したくありません。テキスト ファイルを含む、パスワードで保護された zip ファイルを直接作成したい。
助けはありますか?

編集:私は圧縮のものを使い果たしました。作成した zip ファイルのパスを設定する必要があります。助けはありますか?

4

3 に答える 3

3

SharpZipLibの使用を検討する必要があります。これは、オープン ソースの .net 圧縮ライブラリです。.gzまたはファイルの作成方法の例が含まれてい.zipます。.zip ファイルに直接書き込むことができることに注意してください。最初にディスク上に中間ファイルを作成する必要はありません。

編集: (編集に応じて) SharpZipLib は zip パスワードもサポートしています。

于 2010-03-24T18:47:15.487 に答える
3

StreamWriterのラッピングを作成し、GZipStreamテキストを書き込みます。

于 2010-03-24T18:43:03.287 に答える
0

GZipStream を使用して .gz ファイルを作成できますが、これは .zip ファイルとは異なります。

パスワードで保護された zip ファイルを作成するには、サードパーティのライブラリにアクセスする必要があると思います。

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");
}
于 2010-03-25T15:17:03.927 に答える