[解決済み】.netでプログラム的にファイルを解凍する。
質問
ZIP形式のファイルをプログラムで解凍しようとしています。
を使ってみました。
System.IO.Compression.GZipStream
クラスがありますが、私のアプリを実行すると(実際にはユニットテスト)、この例外が発生します。
System.IO.InvalidDataException: GZipヘッダのマジックナンバーが正しくありません。GZipストリームを渡していることを確認してください。
今になって気づいたのですが
.zip
ファイルは
.gz
ファイルであり、その
GZip
は
Zip
.
しかし、zipファイルを手動でダブルクリックして、"Extract all files"-ボタンをクリックすればファイルを展開できるので、コードでそれを行う方法もあるはずだと思うのですが、どうでしょうか?
そのため、私が試したのは
Process.Start()
を入力とし、zipファイルのパスを指定します。これにより、私のアプリは、Zipファイルのコンテンツを表示するWindowを開くことになります。しかし、このアプリはサーバーにインストールされ、誰も "Extract all files"-button をクリックする人がいないでしょう。
では、どうすればアプリにzipファイル内のファイルを展開させることができるのでしょうか?
それとも他に方法があるのでしょうか?サードパーティのライブラリやアプリをダウンロードせずに、コードでやるのがいいんですが、セキュリティ部門はそれについてあまり気にしていないようで・・・。
解決方法は?
私たちは シャープZipLib 多くのプロジェクトで成功しています。サードパーティのツールですが、ソースコードが含まれており、ここで車輪を再発明することを選択した場合、いくつかの洞察を提供することができます。
関連
-
[解決済み】スクリプトクラスが見つからないので、スクリプトコンポーネントを追加できない?
-
[解決済み】C#におけるtypedefの等価性
-
[解決済み] 保護レベルによりアクセス不能になりました。
-
[解決済み】パディングが無効で、削除できない?
-
[解決済み] 'SubSonic.Schema .DatabaseColumn' 型のオブジェクトをシリアライズする際に、循環参照が検出されました。
-
[解決済み】プロジェクトビルド時のエラー。エディタでスクリプトにコンパイルエラーがあるため、Playerのビルドにエラーが発生する
-
[解決済み】WSACancelBlockingCallの例外について
-
[解決済み】エラー「必要なフォーマルパラメータに対応する引数が与えられていない」を解決する?
-
[解決済み】別のスレッドがこのオブジェクトを所有しているため、呼び出し側のスレッドはこのオブジェクトにアクセスできない
-
[解決済み] Pythonでファイルを解凍する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] [Solved] 1つ以上のエンティティで検証に失敗しました。詳細は'EntityValidationErrors'プロパティを参照してください [重複]。
-
[解決済み】GDI+、JPEG画像をMemoryStreamに変換する際にジェネリックエラーが発生しました。
-
[解決済み】スクリプトクラスが見つからないので、スクリプトコンポーネントを追加できない?
-
[解決済み] 保護レベルによりアクセス不能になりました。
-
[解決済み] DBNullから他の型にオブジェクトをキャストすることができない
-
[解決済み】WPFでXamlファイルにコメントを追加する方法は?
-
[解決済み】「...は'型'であり、与えられたコンテキストでは有効ではありません」を解決するにはどうすればよいですか?(C#)
-
[解決済み】OnCollisionEnter2Dが実行されない?
-
[解決済み】ユーザー設定値を別のユーザー設定値で設定する
-
[解決済み】スレッド終了またはアプリケーションの要求により、I/O操作が中断されました。