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

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

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

2回答

5922閲覧

c# zippassファイルの解凍について

inari_ken

総合スコア34

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

1クリップ

投稿2016/06/14 05:56

編集2016/06/14 06:16

###前提・実現したいこと
こんにちは。C#でzippassファイルを解凍したいです。

###発生している問題・エラーメッセージ
「DotNetZip」というサイトからdllをダウンロードし、Ionic Zip Libraryを参照しています。
ライブラリを使用し、解凍自体は成功したのですが、解凍後のファイルが文字化けしています。

標準でないライブラリで、引数等全て説明しづらいので、他の方法を使った回答もお待ちしております。

###該当のソースコード

c#

1 string zipPath = @"C:\aaa.zip"; 2 //展開先のフォルダのパス 3 string folderPath = @"C:Documents"; 4 //ZipFileを作成する 5 using (Ionic.Zip.ZipFile zip = Ionic.Zip.ZipFile.Read( 6 zipPath)) 7 { 8 //パスワードが設定されているときは、 9 zip.Password = "aaa"; 10 //展開先に同名のファイルがあれば上書きする 11 zip.ExtractExistingFile = 12 Ionic.Zip.ExtractExistingFileAction.OverwriteSilently; 13 14 //ZIP書庫内のエントリを取得 15 foreach (Ionic.Zip.ZipEntry entry in zip) 16 { 17 //エントリを展開する 18 entry.Extract(folderPath); 19 } 20 }

###補足情報(言語/FW/ツール等のバージョンなど)
VisualStudio2015を使用しています。

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

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

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

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

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

guest

回答2

0

System.IO.Compression.FileSystemを参照に追加してください
以下のメソッドで解凍できます

C#

1ZipFile.ExtractToDirectory(@"d:\hoge.zip", @"d:\hoge\");

上記だとD:\hoge.zipがD:\hoge¥フォルダ内に解凍されます

投稿2016/06/14 06:18

編集2016/06/14 06:21
omochi

総合スコア410

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

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

0

ベストアンサー

System.IO.Compression.ZipFile というのがあります。

投稿2016/06/14 06:01

Zuishin

総合スコア28660

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

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

inari_ken

2016/06/14 06:15

ご回答ありがとうございます。 パスワード付のzippassを解凍することもできるのでしょうか? System.IO.Compression.ZipFileクラスのMSDNを探しましたが見つけられませんでした。
Zuishin

2016/06/14 06:24

パスワード付きだったんですね。見落としていました。すみません。 使ったことはありませんが、DotNetZip ならパスワードにも日本語ファイル名にも対応しているようです。
Zuishin

2016/06/14 06:28

先ほどのコメントは、DotNetZip で文字化けさせない方法だそうです。
inari_ken

2016/06/14 07:32

出来ました!インスタンスを作成する際に何故か文字化けしてしまうので、作成後にzip.Initialize()でもう一度決め打ちするんですね。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問