問題タブ [sharpziplib]
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.
macos - Mac で ICSharp を使用してファイルを圧縮する
mono と monobjc を使用して、Mac OS X 10.6 で実行するアプリケーションを開発しています。ICSharpCode.SharpZip を使用して、いくつかのファイルを zip ファイルに追加しています。コードは次のとおりです-
常にではありませんが、PutNewEntry コードが次の例外をスローする場合があります -
System.NotSupportedException: System.Text.Encoding.GetEncoding (Int32 codepage) [0x00000] でサポートされていない CodePage 437 .SharpZipLib.Zip.ZipConstants.ConvertToArray (Int32 フラグ、System.String str) [0x00000] in :0 at ICSharpCode.SharpZipLib.Zip.ZipOutputStream.PutNextEntry (ICSharpCode.SharpZipLib.Zip.ZipEntry エントリ) [0x00000] in :0 at (wrapper remoting-invoke-with-check) ICSharpCode.SharpZipLib.Zip.ZipOutputStream:PutNextEntry (ICSharpCode.SharpZipLib.Zip.ZipEntry)
次の2つの質問があります-
- 上記の例外の原因は何ですか。
- ICSharp は最適なオプションではないようです。より良い代替手段は何ですか?.
c# - sharpziplib compressed files to be uncompressed externally
I have a scenario where by I want to zip an email attachment using SharpZipLib. Then the end user will open the attachment and will unzip the attached file.
Will the file originally zipped file using SharpZipLib be easily unzipped by other programs for my end user?
c# - C# で SharpZipLib を使用してマルチボリューム zip ファイルを抽出するにはどうすればよいですか?
Setup1.zip.001 と Setup1.zip.002 に分割された Setup1.cab ファイルが 1 つあり、7zip を使用してアーカイブしました。これらのボリュームが宛先に到達したら、C# を使用して、そのファイルを両方のアーカイブから、それらが存在する同じディレクトリに抽出できるようにしたいと考えています。これは SharpZipLib でできることですか、それとも別のツールを使用する必要がありますか?
それ以外の場合、C# (または別のツール - 私は開いています!) を使用して 2 つを 1 つの zip ファイルに結合し、SharpZipLib を使用してそれを抽出する方法はありますか? ありがとう!
編集: 7zip は宛先マシンにインストールされません。また、元のファイルをアーカイブする別の方法を使用することにもオープンです。500MB 未満のチャンクにする必要があるだけで、元のファイルは 570MB です。
c# - SharpZipLib - フォルダー/ディレクトリを zip アーカイブに追加する
例から、zip ファイルを解凍する方法をかなりよく理解できました。
ほぼすべての例で、ZipEntry がディレクトリであることを識別する方法は次のとおりです。
これで問題なく、ファイルが抽出されると、すべての (ディレクトリが検出され、作成されます) ディレクトリが使用可能になります。
ファイルを zip に追加することはできますが、フォルダを追加するにはどうすればよいですか? ディレクトリをループして、見つかったファイルを追加する (そして、ZipEntry.Name プロパティが適切に入力される) ことは理解していますが、ZipEntry をアーカイブに追加し、それがディレクトリであることを ZipOutputStream に指示するにはどうすればよいですか?
c# - SharpZipLib デフレーターが不正なデータを作成する
元の圧縮データを正しく膨張させることができます。ただし、データを膨張させ、収縮させ、再び膨張させると、結果のデータは正しくありません (たとえば、単純なデータ抽出、その変更、および再度の圧縮 - 変更が発生しない場合のみテストできるため、テストできます)。
結果のデータは何らかの形で「破損」しています。最初の (約) 40 バイトは問題ありませんが、その後に不正なデータの「ブロック」が続きます (元のデータの残りはまだ残っていますが、多くのバイトが欠落しています)。
圧縮レベルを変更しても役に立ちません (ただし、NO_COMPRESSION を設定すると不完全なストリームが作成されます)。
質問は簡単です:なぜそれが起こっているのですか?
編集:悪いことに、元の圧縮データの最初の数バイトを誤って書き直しました。これは SharpZipLib のせいではなく、私のせいです。
c# - bz2 ファイルを解凍するときに System.UnauthorizedAccessException を修正するにはどうすればよいですか?
ICSharpCode.SharpZipLib を使用してコードで bz2 ファイルを解凍しようとしています。
ファイルをどこで作成しても、ファイルを完全にアクセスできるにもかかわらず、この例外が発生し続けます。どんな助けでも大歓迎です。
c# - C#SharpZipLibはファイルをzipに直接書き込みます
私のプロセスでは、多数のファイル (プロセスによっても作成される) を含む zip ファイルを作成する必要があります。一時ファイルを作成し、圧縮してから削除する代わりに、zip ファイルにファイルを直接追加できますか?
c# - asp.net でエラーが発生しましたが、アプリケーションはスムーズに実行されます
エラーが発生しました:
これについて何か考えはありますか?
c# - IsolatedStorageにあるZipファイル
私のアプリケーションはSilverlightで複数のファイルをダウンロードする必要があります。ファイルを保存する許可をユーザーに何度も要求したくないので、最初にファイルをIsolatedStorageに保存してから、すべてをファイルに圧縮して1回要求します。許可を保存するため。
したがって、SharpZipLibを使用してIsolatedStorageにある複数のファイルを圧縮しました。問題は、SharpZipLibがファイルアドレスをZipEnteryとして受け入れることです。
ご存知のように、ファイルはIsolatedStorageにありますが、アドレスがわかりません。
メモリストリームまたはバイト配列との間でZipを作成するサンプルを見ましたが、複数のファイルに使用できません。
SharpZipLibを使用する方法を見つけるのを手伝ってください。または、許可を何度も求めずに複数のファイルをダウンロードする別の方法を紹介してください。
c# - ファイルの圧縮に実行時間を費やす価値があるのはいつですか?
時々接続されるクライアント アプリケーションのサーバーからファイルを同期するアプリケーションで 、#ziplib (ここにあります) を使用しています。
私の質問は、このアルゴリズムでは、ファイルの実際の圧縮を行うために実行時間を費やす価値があるのはいつですか? おそらく、小さなテキスト ファイルが 1 つだけ同期されている場合、圧縮にかかる時間は転送のサイズを十分に縮小せず、実際にはプロセス全体の速度を低下させます。
圧縮時間プロファイルは、ファイルの数、ファイルの種類、およびそれらのファイルのサイズに基づいて変化するため、いつファイルを圧縮する必要があり、いつそれらをそのまま渡す必要があるかをプログラムで発見する良い方法はありますか? ? 私たちのアプリケーションでは、写真の種類とサイズが変わる可能性がありますが、ほとんどの場合、ファイルは写真になります。
私はまだ実際のファイル転送ロジックを書いていませんが、System.Net.WebClient
これを行うために使用することを期待していますが、実行時間を節約するための代替手段にもオープンです。
更新: この議論が発展するにつれて、「圧縮するか、圧縮しないか」は間違った質問ですか? System.Net.WebClient
古い方法を圧縮された WCF トラフィックまたは類似のものに置き換えることに焦点を当てる必要がありますか? このユーティリティのデータベース同期部分では、Microsoft Synchronization Framework と WCF が既に使用されているため、私はそれを受け入れます。ネットワーク トラフィックを制限するために今できることは、クライアントにとって非常に大きなものになるでしょう。