- PR -

Zipファイル作成ができない

投稿者投稿内容
ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2008-08-12 17:52
引用:

烈さんの書き込み (2008-08-12 17:21) より:

現象は、
・Zipファイルは作成される。
・解凍時にエラーが出て展開できません。
・解凍ツールは「Lhaplus」。

といった感じです。


懐かしいスレがリンクされていたので。

もちろんですが、通常の zip ファイルは「Lhaplus」で解凍できているんですよね?

烈さんが挙げたリンク先でじゃんぬさんが提示してくれたソースはそのまま動作することをその時に確認しています。
もし可能なら、そのソースを使って試してみてはいかがですか?

僕も何となくダウンロードで失敗している気がするので、スフレさんの言うサーバ側のファイルとクライアント側のファイルを確認してみることをお薦めします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-08-12 17:56
vjslib のバージョン + ファイル名が気がかりだったり。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
会議室デビュー日: 2008/05/29
投稿数: 12
投稿日時: 2008-08-12 18:49
引用:

スフレさんの書き込み (2008-08-12 17:40) より:
ファイル名が切れるのではなかったのでしょうか?
サーバ側に一時的に作ったzipファイルとクライアントでダウンロードしたzipファイルは一致してますか?




申し訳ありませんでした。ファイル名が切れていたのは最初に提示したソースのときでした。
修正したソースでの現象が上記のものとなります。

引用:

ひろれいさんの書き込み (2008-08-12 17:52) より:
懐かしいスレがリンクされていたので。

もちろんですが、通常の zip ファイルは「Lhaplus」で解凍できているんですよね?

烈さんが挙げたリンク先でじゃんぬさんが提示してくれたソースはそのまま動作することをその時に確認しています。
もし可能なら、そのソースを使って試してみてはいかがですか?

僕も何となくダウンロードで失敗している気がするので、スフレさんの言うサーバ側のファイルとクライアント側のファイルを確認してみることをお薦めします。



勝手に参考にさせていただきました。すみません。
スフレさんも仰っておりましたが、サーバ側とクライアント側のZipファイルは
同じものでした。。

引用:

じゃんぬねっとさんの書き込み (2008-08-12 17:56) より:
vjslib のバージョン + ファイル名が気がかりだったり。



じゃんぬさん、その通りでした;;
ファイル名に2バイト文字を使ってしまっていました。
また、原因の一つにExcelファイル作成時のバグも影響を及ぼしていました。

それらを修正することで、Zipファイル出力のソースは先ほど提示した修正版で
上手く動き、正しく解凍することができました。

皆様、ありがとうございました。



[ メッセージ編集済み 編集者: 烈 編集日時 2008-08-12 18:51 ]

[ メッセージ編集済み 編集者: 烈 編集日時 2008-08-12 18:57 ]
会議室デビュー日: 2008/05/29
投稿数: 12
投稿日時: 2008-08-13 11:07
皆様、昨日はありがとうございました。
おかげで、ExcelファイルのZip圧縮は問題なく行えるようになりました。

しかし、新たな問題が発生してしまいましたので追記させていただきます。
昨日の修正したソースではpdfファイルが上手く動いてくれません。

現象としましては
・Excelファイルは問題なく圧縮・解凍が行える(複数ファイルも可)
・pdfファイルをそこに含めると解凍時にエラーとなり解凍できない。
・pdfファイル(1ファイル)のみの場合も同様のエラー
・使用ツールはLhaplus(通常のZipファイルは解凍できている)
・Lhaplusのエラーメッセージは「アーカイブのヘッダに異常がありました。」

Excelとpdfでは処理方法に違いがあるのでしょうか?
何かヒントや助言などいただけたら幸いです。

よろしくお願いします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-08-14 13:43
引用:

烈さんの書き込み (2008-08-13 11:07) より:

Excelとpdfでは処理方法に違いがあるのでしょうか?
何かヒントや助言などいただけたら幸いです。


もう確認しているかもしれませんが pdf は pdf でクライアントとサーバとで同じものなのか検証して頂かないといけないですね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
会議室デビュー日: 2008/05/29
投稿数: 12
投稿日時: 2008-08-14 14:39
引用:

じゃんぬねっとさんの書き込み (2008-08-14 13:43) より:
もう確認しているかもしれませんが pdf は pdf でクライアントとサーバとで同じものなのか検証して頂かないといけないですね。




じゃんぬさん、お盆のさなかありがとうございます。
pdfファイルはサーバもクライアントも同じでした。

そして、先ほどソースの
>if(bis.read(buffer, 0, iFileSize) > -1)
>{
>  oCrc32.update(buffer, 0, iFileSize);
>  zos.write(buffer, 0, iFileSize);
>}
この箇所を以下のように修正すると、上手くいきました(^^)
int intLen;
while((len = fis.read(buffer, 0, buffer.Length)) > 0)
{
 zos.write(buffer, 0, len);
}

ただ、自分でもこの違いの意味は分っていないので、
今から学習・検証してみます(^^;)

本当にありがとうございました。

スキルアップ/キャリアアップ(JOB@IT)