問題タブ [dotnetzip]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
635 参照

asp.net - 大きなzipファイルを送信しようとすると接続が閉じられます

私が達成しようとしているのは、ユーザーがSilverlightアプリケーションから複数のファイルをダウンロードできるようにすることです。これを行うために、データベースからすべてのファイルを取得してクライアントに送信するDotNetZipライブラリとASP.NETハンドラーを使用することにしました。それは良い考えであり、実装が簡単なようでした。単純なハンドラーを作成し、必要なすべてのコードを記述して、すべてが機能しました。

しかし、どういうわけか、たくさんのファイルでzipファイルを作成すると問題が発生します。The remote host closed the connection. The error code is 0x800704CD.にデータを書き込もうとすると、例外がスローされResponseます。

ご覧のとおり、同様の問題の解決策として示されているように、MemoryStream小さなデータを作成してに送信していますが、これは役に立ちませんでした。ファイルをに直接Response保存すると、まったく同じエラーが発生します。ZipResponse

BufferOutputプロパティはFalse、すぐにダウンロードを開始するように設定されていますが、に変更してTrueも何も変更されません。

zip私が送信しようとしているファイルは約248メガバイトであり、これによりエラーが発生します。いくつかの要素を削除し、zipファイルが約220メガバイトになると、すべてが正常に機能しているように見えます。

誰かが知っていますか、この動作の理由は何でしょうか?どうすればこれを修正できますか?zipファイルを送信してもこのエラーは発生しませんか?

0 投票する
1 に答える
2084 参照

c# - IonicZip/DotNetZip 閉じたファイルにアクセスできません。context.Response.OutputStream

私は*.ashxこのコードを持つ(ハンドラー)を持っています:

http://dotnetzip.codeplex.com/の最新バージョンを使用して いFile.ReadAllBytesます。例外メッセージは、閉じたファイルにアクセスできませんStreamReaderOutputStream

0 投票する
1 に答える
2927 参照

c# - DotNetZip 1.9 を使用して HttpInputStream から zip ファイルを読み取れない

DotNetZip 1.9 を使用して、Asp.Net MVC 3 でアップロードされた zip ファイルを読み取ろうとしています。受け取った HttpPostedFileBase オブジェクトが問題ないことは既に確認済みです。ディスクに保存してから解凍できます。ただし、メモリから直接解凍できるはずなので、最初にディスクに保存するのは無駄に思えました。

MSDN から、HttpPostedFileBase.InputStream プロパティは「アップロードされたファイルを指す Stream オブジェクトを取得して、ファイルの内容を読み取る準備をします」。

DetNetZip のリファレンスによると、ZipFile.Read() は Stream オブジェクトを受け入れることができます。だから私はそれを試してみました.DotNetZipはBadReadExceptionをスローします. 問題を示すスクリーンショットを添付しました。

HttpInputStream からの解凍の問題 HttpInputStream からの解凍の問題

InputStream の値、長さはアップロードされた zip ファイルの値と一致します InputStream の値、長さはアップロードされた zip ファイルの値と一致します

誰か助けて?どうも

0 投票する
1 に答える
1107 参照

c# - DotNetZip ストリーミング

一連のファイルを圧縮し、ストリームを介してデータを消費できるようにしようとしています。

メモリフットプリントをできるだけ小さく保ちたいです。

私の考えは、一連の FileStream オブジェクトをデータ メンバーとして持つ Stream を実装することでした。Stream の Read メソッドが呼び出されると、ファイル ストリームの 1 つからデータを読み取り、ZipOutputStream インスタンスを使用して圧縮データを一時ストレージ ストリームに書き込み、それから読み取り要求を転送します。

この一時ストレージ ストリームは、単なるバイトのキューになります。これらのバイトは (Read の呼び出しを介して) バッファーに移動されると、キューから削除されます。このようにして、まだ読み取られていないバイトのみを保存します。

残念ながら、有効な zip ファイルを作成するには、ZipOutputStream を破棄するときにランダムなファイルの場所に書き込む必要があるようです。これにより、「一時的なデータ」ソリューションを使用できなくなります。

うまくいけば、これはすべて明確です:)

zip ファイルを作成するときにメモリ フットプリントを最小限に抑える別の方法はありますか? 助けてください!

ありがとう!

0 投票する
2 に答える
5350 参照

c# - DotNetZipを使用してZipファイルを作成する際のエラー:アーカイブの予期しない終了

DotNetZipを使用して1つ以上のファイルを圧縮する方法がありますが、正しく機能しています。本日初めてエラーが発生しましたが、アーカイブの合計サイズに関係しているようです。同じ60mb.tiffイメージを使用して、コピーをいくつか追加し、テストして、繰り返します。約10枚の画像が追加されるまでは正常に機能しましたが、WinRarを使用してZipファイルを開くと、「予期しないアーカイブの終了」エラーが発生しました。この方法でテストすることで、コードまたはファイルに関連する問題(破損など)を除外できたと思います。コードはエラーではなく、WinRarのみがエラーになります。Zipファイルを開くと、サイズが「0」のファイルが1つだけ表示されます。そのため、ある種のサイズ制限に達しているようで、アーカイブを作成できません。どちらの限界かわかりません。

0 投票する
2 に答える
1099 参照

dotnetzip - ストリームをエントリに取得するときの .NET ZipPackage と DotNetZip

私はしばらくの間 .NET で ZipPackage クラスを使用しており、そのシンプルで直感的な API がとても気に入っています。エントリから読み取るときは、entry.GetStream() を実行し、このストリームから読み取ります。エントリの書き込み/更新時に、entry.GetStream(FileAccess.ReadWrite) を実行して、このストリームに書き込みます。ストリームが元々どこから来たのかわからない他のコードに読み取り/書き込みを渡すことができるため、非常にシンプルで便利です。

ZipPackage-API には LastModified などのエントリ プロパティのサポートが含まれていないため、DotNetZip などの他の zip-api を調べています。ただ、使い方が少しわかりずらかったです。たとえば、エントリから読み取りたい場合、最初にエントリ全体を MemoryStream に抽出し、先頭に移動して、このストリームを他のコードに渡す必要があります。エントリに書き込むには、ZipEntry 自体が読み取れるストリームを入力する必要があります。これは私には非常に後ろ向きに思えます。この API を間違った方法で使用していますか?

ZipEntry は、ファイルが保存されているディスクから直接ファイルを配信し、リーダーが読み取るときに抽出することはできませんか? 最初にメモリに完全に抽出する必要がありますか? 私は専門家ではありませんが、私には間違っているようです。

0 投票する
4 に答える
10209 参照

c# - .NET を使用して Zip ファイル内のディレクトリを削除するにはどうすればよいですか?

.zip 内のディレクトリとその中のすべてのファイルを削除するにはどうすればよいですか (DotNetZip を使用することをお勧めします)。

現在、zip 内のすべてのファイルを実行していますが、機能しません。

そうでない場合、どうすればこれを機能させることができますか?

0 投票する
2 に答える
25373 参照

c# - Ionic Zip:byte[]からのZipファイルの作成

Ionic zipを使用すると、既存のファイルをzipオブジェクトに追加して、zipファイルを作成できます。しかし、作成したzipファイルからそれらのbyte []を読み取ってサーバーに送信していることを考えると、サーバーにzipを保存するには、そのbyte[]からzipファイルを再度作成する必要があります。どうすればこれを達成できますか?

私はC#を使用しています。

0 投票する
1 に答える
1561 参照

c# - DotNetZip で抽出しようとしたときのエラー

ダウンロードが完了したときに、ダウンロードしたファイルを解凍するプログラムがありますDotNetZip。フォルダー システム内の特定のフォルダーに抽出する必要があるため、.txt ファイルから保存パスを取得します。特定の保存フォルダーを持たないファイル用のフォルダーが 1 つあります。
プログラムは正常に動作しますが、次のようなエラー メッセージが表示されることがあります。

パスの一部が見つかりませんでした!

bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) bei System.IO.Directory.InternalCreateDirectory(String fullPath, String path, DirectorySecurity dirSecurity) bei System.IO.Directory.CreateDirectory(String path, DirectorySecurity directorySecurity) bei System.IO.Directory.CreateDirectory(String path) bei Ionic.Zip.ZipEntry.ValidateOutput(String basedir, Stream outstream, String& outFileName) bei Ionic.Zip.ZipEntry.InternalExtract(String baseDir, Stream outstream, String password) bei Ionic.Zip.ZipEntry.Extract(String baseDirectory, ExtractExistingFileAction extractExistingFile) bei dvw002.Form1.backgroundWorker1_DoWork(Object sender, DoWorkEventArgs e)

ファイルの95%が正常に抽出され、パスが存在するため、なぜこれが起こっているのかわかりません...

0 投票する
3 に答える
4610 参照

c# - ZipFileオブジェクトの重複キー追加エラー

私は最初にそれをチェックする方法を理解しようとしています

コレクションにある各ファイルをループしてZipFileコレクションに追加しようとすると、次のようになります。

ZipFileタイプはIonic.Zip.dll

問題は、AddItemエラーが発生し、同じキーのアイテムがすでに追加されていることです。したがって、たとえば、最後に、このzipディクショナリですでに追加されているこのキーを追加しようとします。

"C:\ www \ files \ 233272 \ Exercise Files \ SampleCode \ Original \ MyTest.cs"

dupが正しく機能するかどうかを確認できません...ループ内でこれを2回追加しようとします。

追加する前にfile[0]を確認するにはどうすればよいですか?私は試しLINQ .Any()ましたが、これにLINQを使用することさえできれば、構文を正しく理解できませんでした。

私はこれを試しましたが、構文的にこれを正しく行っていません:

また試した

また試した