質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
冗長化

冗長化とは、システムの一部に障害が発生してもサービスを継続できるようシステム構築を行うこと。要する量より多く予備装置を準備しバックアップとして配置しておきます。また、冗長化による安全性は、冗長性と呼ばれています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

暗号化

ネットワークを通じてデジタルデータをやり取りする際に、第三者に解読されることのないよう、アルゴリズムを用いてデータを変換すること。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

zip

ZIPとは、複数のファイルをひとつにまとめて圧縮したり、圧縮したファイルを展開することができるアーカイブフォーマットです。 1998年以降のWindowsOS各バージョンで、標準の圧縮フォルダとして採用されています。 MacOSでも、X v10.3以降に他の圧縮ソフトとまとめてZIP機能を採用しています。

Q&A

1回答

679閲覧

メーラーの自動暗号化ツールで作成されたzipが解凍できない

shirotan99

総合スコア4

冗長化

冗長化とは、システムの一部に障害が発生してもサービスを継続できるようシステム構築を行うこと。要する量より多く予備装置を準備しバックアップとして配置しておきます。また、冗長化による安全性は、冗長性と呼ばれています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

暗号化

ネットワークを通じてデジタルデータをやり取りする際に、第三者に解読されることのないよう、アルゴリズムを用いてデータを変換すること。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

zip

ZIPとは、複数のファイルをひとつにまとめて圧縮したり、圧縮したファイルを展開することができるアーカイブフォーマットです。 1998年以降のWindowsOS各バージョンで、標準の圧縮フォルダとして採用されています。 MacOSでも、X v10.3以降に他の圧縮ソフトとまとめてZIP機能を採用しています。

0グッド

0クリップ

投稿2020/04/16 07:19

前提・実現したいこと

C#で、zip解凍アプリを開発しています。
使っているライブラリはSharpCompressです。
自動暗号化ツールで作成されたzipが解凍できないので、解凍できるようにしたいです。

発生している問題・エラーメッセージ

最近、メールの添付ファイルを自動暗号化するツールがよく使われるようになりましたが、 このツールでzip化したファイルが解凍できないという問題に悩まされています。 そのファイルは、Deflate圧縮で、圧縮サイズが非圧縮サイズよりわずかに大きく、 ヘッダのオフセット0x06(general purpose bit flag)が立っているという共通点があります。 もとファイルが画像であることが多いので、サイズを加工して圧縮の余地もない画像ファイルを 自動暗号化ツールでzip化するとそうなるのではないかと思いますが、 このようなファイルはSharpCompressではnon-seekable扱いになって解凍できません。 しかしWinZipでは開けるので、解凍可能なファイルのはずです。 このようなファイルの解凍方法を知っている方はいませんか? できればサンプルコードも教えていただけると助かります。 よろしくお願いします。

該当のソースコード

ソースコード

試したこと

DotNetLibを使うと解凍できたのですが、PDFが開けません。

補足情報(FW/ツールのバージョンなど)

開発環境はVisual Studioです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

.Net Framework4.0以降であればSystem.IO.Compression.ZipFileクラスを使ってみてはどうでしょう。
(System.IO.Compression.FileSystemを参照設定に追加)

と思ったけど、System.IO.Compression.ZipFileはパスワード未対応でしたね。
SharpZipLibなどはどうでしょうか?
https://www.nuget.org/packages/SharpZipLib/

投稿2020/04/16 07:36

編集2020/04/16 07:44
kenshirou

総合スコア772

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shirotan99

2020/04/16 07:51

回答ありがとうございます。 System.IO.Compression.ZipFileは使えましたが、解凍可能なサポート形式がSharpCompressの方が広く、我々の製品としてはレベルダウンになってしまうのです。 現在はSharpCompressを取り込んで直接改造しようかと検討しています。
kenshirou

2020/04/16 08:02

なるほど、そういうことですね。 失礼致しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問