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

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

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

Re[3]: vjslibライブラリを使用したzip圧縮


(過去ログ 124 を表示中)

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

■73978 / inTopicNo.1)  vjslibライブラリを使用したzip圧縮
  
□投稿者/ かんな (1回)-(2014/11/19(Wed) 13:49:31)

分類:[.NET 全般] 

vjslibライブラリを利用して、複数のpdfファイルをzip圧縮しようとしています。

以下のようなコードを書いていますが、
Dim f As String = System.IO.Path.GetFileName(file)
のところで、
'java.lang.System' のタイプ初期化子が例外をスローしました。
というエラーが発生します。

開発環境はVisualBasic2010です。
解消方法を教えて頂ければ幸いです。

---------------------------------------------------------------------------------------------------

Dim zipPath As String = “C:\test.zip”
‘Dim filePaths As String() = {“C:\test1.pdf”}

Dim fos As New java.io.FileOutputStream(zipPath)
Dim zos As New java.util.zip.ZipOutputStream(fos)
Dim file As String

For Each file In filePaths
  Dim f As String = System.IO.Path.GetFileName(file)
  Dim ze As New java.util.zip.ZipEntry(f)
  ze.setMethod(java.util.zip.ZipEntry.DEFLATED)
  zos.putNextEntry(ze)

  Dim fis As New java.io.FileInputStream(file)
  Dim buffer(8191) As System.SByte

  While True
    Dim len As Integer = fis.read(buffer, 0, buffer.Length)
    If len < = 0 Then
      Exit While
    End If
    zos.write(buffer, 0, len)
  End While

  fis.close()
  zos.closeEntry()
Next file

zos.close()
fos.close()

引用返信 編集キー/
■73982 / inTopicNo.2)  Re[1]: vjslibライブラリを使用したzip圧縮
□投稿者/ WebSurfer (392回)-(2014/11/19(Wed) 20:18:57)
No73978 (かんな さん) に返信

アップされていたコードで、

> ‘Dim filePaths As String() = {“C:\test1.pdf”}

のところがコメントアウトされていますが、それで動くとは思えません。なにかの間違
いですか? 

> Dim f As String = System.IO.Path.GetFileName(file)
> のところで、
> 'java.lang.System' のタイプ初期化子が例外をスローしました。
> というエラーが発生します。

その行のコードは vjslib.dll とは関係なく java 何とかの例外がスローされるとは
考えにくいのですが。今一度確認してもらえませんか。試しに、その行をコメントアウ
トして、ZipEntry("test.pdf") というように直接ファイル名を設定したらどうなりま
すか?

アクセス権の問題はないか確認してください。C:\ 直下ではなくアプリの exe ファイ
ルと同じフォルダとか、アプリを起動するユーザーの権限があるフォルダを使うなどし
て確認してみてください。

もう一つ、以下のページによると vjslib.dll 環境との相性の問題(?)があって、
質問に書いてあったものと同じエラーメッセージが出ることがあるそうです。

http://www.sangyo-rock.com/tech/index.php?.NET%20%A5%D5%A5%A1%A5%A4%A5%EB%A5%B7%A5%B9%A5%C6%A5%E0%B4%D8%CF%A2
引用返信 編集キー/
■73983 / inTopicNo.3)  Re[1]: vjslibライブラリを使用したzip圧縮
□投稿者/ Azulean (368回)-(2014/11/19(Wed) 22:38:35)
2014/11/19(Wed) 22:56:40 編集(投稿者)

No73978 (かんな さん) に返信
> vjslibライブラリを利用して、複数のpdfファイルをzip圧縮しようとしています。

否定から入るようで申し訳ないですが、J# のライブラリを使うのはやめませんか?

このライブラリは開発が終了しており、将来性がありません。
サポートも数年しない内に切れますし、x64 ビルドや AnyCPU + x64 環境では使えません。

新しくアプリを作るなら、DotNetZip を代替候補として検討していただいた方が良いと考えています。
引用返信 編集キー/
■73984 / inTopicNo.4)  Re[2]: vjslibライブラリを使用したzip圧縮
□投稿者/ かんな (3回)-(2014/11/20(Thu) 09:08:23)
No73982 (WebSurfer さん) に返信

色々間違えました。申し訳ありません。

>> ‘Dim filePaths As String() = {“C:\test1.pdf”}

>のところがコメントアウトされていますが、それで動くとは思えません。なにかの間違
>いですか?

こちらのコメントアウトは書込む際の間違いです。

>その行のコードは vjslib.dll とは関係なく java 何とかの例外がスローされるとは
>考えにくいのですが。今一度確認してもらえませんか。試しに、その行をコメントアウ
>トして、ZipEntry("test.pdf") というように直接ファイル名を設定したらどうなりま
>すか?

エラーがでた行は、

Dim fos As New java.io.FileOutputStream(zipPath)

でした。

フォルダを変えてみてもダメでした。
相性の問題もあるということなので、DotNetZipを使ってみます。

ありがとうございました。
引用返信 編集キー/
■73985 / inTopicNo.5)  Re[2]: vjslibライブラリを使用したzip圧縮
□投稿者/ かんな (4回)-(2014/11/20(Thu) 09:10:24)
No73983 (Azulean さん) に返信
> 2014/11/19(Wed) 22:56:40 編集(投稿者)
>
> ■No73978 (かんな さん) に返信
>>vjslibライブラリを利用して、複数のpdfファイルをzip圧縮しようとしています。
>
> 否定から入るようで申し訳ないですが、J# のライブラリを使うのはやめませんか?
>
> このライブラリは開発が終了しており、将来性がありません。
> サポートも数年しない内に切れますし、x64 ビルドや AnyCPU + x64 環境では使えません。
>
> 新しくアプリを作るなら、DotNetZip を代替候補として検討していただいた方が良いと考えています。

一旦フォルダを作らなくてはならなそうなので、避けていましたが、DotNetZipを使ってみることにします。
ありがとうございます。
引用返信 編集キー/
■73989 / inTopicNo.6)  Re[3]: vjslibライブラリを使用したzip圧縮
□投稿者/ かんな (5回)-(2014/11/20(Thu) 14:55:48)
No73985 (かんな さん) に返信

DotNetZipで解決しました。
ありがとうございました。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -