C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: ZIPライブラリー


(過去ログ 102 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■61024 / inTopicNo.1)  ZIPライブラリー
  
□投稿者/ JRY (1回)-(2011/07/29(Fri) 16:16:46)

分類:[VB.NET/VB2005 以降] 

こんにちは。
現在SharpZipLibを使用して、フォルダを圧縮するという事をしています。
実際に、圧縮をかけてみるとエラーが発生してしまいます。

FileNotFoundException はハンドルされませんでした。
ファイルまたはアセンブリ 'ICSharpCode.SharpZipLib, Version=0.86.0.518, Culture=neutral, PublicKeyToken=1b03e6acf1164f73'、またはその依存関係の 1 つが読み込めませんでした。指定されたファイルが見つかりません。

このブログラムの書いてあるフォームを呼び出す所にエラーが出ています。

Dim f As New Form5()
f.ShowDialog(Me) &#9756;ここの部分が強調されていました。
f.Dispose(
)

&#9759;プログラム
'作成するZIP書庫のパス
Dim zipPath As String = TextBox2.Text & TextBox3.Text & ".zip"
'圧縮するファイルのあるフォルダのパス
Dim zipFolder As String = TextBox1.Text

'書き込むZIP書庫のStream
Dim writer As New System.IO.FileStream(zipPath, _
System.IO.FileMode.Create, System.IO.FileAccess.Write)
'ZipOutputStreamを作成
Dim zos As New ICSharpCode.SharpZipLib.Zip.ZipOutputStream(writer)

'圧縮レベルを設定する。0は圧縮しない。9は最高圧縮。
zos.SetLevel(ComboBox2.Text)
If TextBox1.Text = "" Then
'パスワードを設定する
'zos.Password = "pass"
Else
'パスワードを設定する
zos.Password = TextBox4.Text
End If
'圧縮するフォルダにあるファイルを取得
Dim files As String() = System.IO.Directory.GetFiles(zipFolder, _
"*", System.IO.SearchOption.AllDirectories)

'ファイル名からエントリ名を決定するためにZipNameTransformを使用する
'zipFolderを基にした相対パスをエントリ名にする
Dim nameTrans As New ICSharpCode.SharpZipLib.Zip.ZipNameTransform(zipFolder)

For Each file As String In files
'ZIP内のエントリの名前を決定する
Dim f As String = nameTrans.TransformFile(file)

'ZipEntryを作成
Dim ze As New ICSharpCode.SharpZipLib.Zip.ZipEntry(f)

'エントリ情報を設定する。設定しなくてもよい
Dim fi As New System.IO.FileInfo(file)
'時間を設定する
ze.DateTime = fi.LastAccessTime
'属性を保持する
ze.ExternalFileAttributes = CInt(fi.Attributes)
'サイズを設定する
ze.Size = fi.Length
'エントリ名とコメントにunicode UTF8を使う
'ze.IsUnicodeText = True

'新しいエントリの追加を開始
zos.PutNextEntry(ze)

'圧縮するファイルを読み込む
Dim fs As New System.IO.FileStream(file, _
System.IO.FileMode.Open, System.IO.FileAccess.Read)
Dim buffer As Byte() = New Byte(2047) {}
Dim len As Integer
While True
len = fs.Read(buffer, 0, buffer.Length)
If len = 0 Then
Exit While
End If
'書庫に書き込む
zos.Write(buffer, 0, len)
End While
fs.Close()
Next

'閉じる
zos.Finish()
zos.Close()
writer.Close()
DLLは、参照に追加を行っています。
なにか解決法はありますか?
引用返信 編集キー/
■61028 / inTopicNo.2)  Re[1]: ZIPライブラリー
□投稿者/ uni (5回)-(2011/07/29(Fri) 16:45:25)
2011/07/29(Fri) 16:55:24 編集(投稿者)

例外の内容は「指定されたファイルが見つかりません」的なものなので
>Dim zipPath As String = TextBox2.Text & TextBox3.Text & ".zip"
で指定しているパスにファイルが存在しないんじゃないでしょうか。
想定したパスになっているかステップ実行で確認してみては。

16:54訂正
>ファイルまたはアセンブリ 'ICSharpCode.SharpZipLib, Version=0.86.0.518, Culture=neutral, PublicKeyToken=1b03e6acf1164f73'、またはその依存関係の 1 つが読み込めませんでした。指定されたファイルが見つかりません。
との事なので最初のコメントは的外れでした、失礼をば・・・
引用返信 編集キー/
■61029 / inTopicNo.3)  Re[1]: ZIPライブラリー
□投稿者/ くり太郎 (34回)-(2011/07/29(Fri) 16:49:11)
くり太郎 さんの Web サイト
No61024 (JRY さん) に返信
> こんにちは。
> 現在SharpZipLibを使用して、フォルダを圧縮するという事をしています。
> 実際に、圧縮をかけてみるとエラーが発生してしまいます。
>
> FileNotFoundException はハンドルされませんでした。
> ファイルまたはアセンブリ 'ICSharpCode.SharpZipLib, Version=0.86.0.518, Culture=neutral, PublicKeyToken=1b03e6acf1164f73'、またはその依存関係の 1 つが読み込めませんでした。指定されたファイルが見つかりません。

参照先のライブラリーファイルが見つからないということではないでしょうか?
もしくは、32bit / 64bit プラットフォームの設定の問題とか?

引用返信 編集キー/
■61030 / inTopicNo.4)  Re[2]: ZIPライブラリー
□投稿者/ JRY (4回)-(2011/07/29(Fri) 18:00:03)
No61029 (くり太郎 さん) に返信
> ■No61024 (JRY さん) に返信
>>こんにちは。
>>現在SharpZipLibを使用して、フォルダを圧縮するという事をしています。
>>実際に、圧縮をかけてみるとエラーが発生してしまいます。
>>
>>FileNotFoundException はハンドルされませんでした。
>>ファイルまたはアセンブリ 'ICSharpCode.SharpZipLib, Version=0.86.0.518, Culture=neutral, PublicKeyToken=1b03e6acf1164f73'、またはその依存関係の 1 つが読み込めませんでした。指定されたファイルが見つかりません。
>
> 参照先のライブラリーファイルが見つからないということではないでしょうか?
> もしくは、32bit / 64bit プラットフォームの設定の問題とか?
>
プラットフォームは関係ないと思いますけど・・・
原因は現在も分かっていない状況です。
引用返信 編集キー/
■61031 / inTopicNo.5)  Re[3]: ZIPライブラリー
□投稿者/ くり太郎 (35回)-(2011/07/29(Fri) 19:41:08)
くり太郎 さんの Web サイト
No61030 (JRY さん) に返信
> プラットフォームは関係ないと思いますけど・・・

エラーメッセージを見る限りだとそうなんですけど、32bit 用のアセンブリを 64bit CPU の開発環境から実行したら動かなかったりするので、念のため確認事項として記載したという感じです。

対象のアセンブリを実行する際に、他のライブラリーファイルを必要とするなどの可能性はありませんか?

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -