0

私は SharpCompress ライブラリを使用しています (それは問題ではありません)。私のzipは保護されていないか、パスワードで保護されています(すべて同じパスワードで)。だから私はこのようにコーディングしています:

using(Stream stream = File.OpenRead(file))
{
    try {
        reader = ZipReader.Open(stream);
        moreFiles = reader.MoveToNextEntry();
    } catch (Exception e) {
        reader = ZipReader.Open(stream, pwd);
        moreFiles = reader.MoveToNextEntry();
    }
    //rest of code
}

MoveToNextEntryストリームが開始されていないと思うため、呼び出すキャッチブロックに到達するたびに、あいまいな「無効なヘッダー:xxxxxxxx」例外が常に発生します。

ブロックFile.OpenRead(file)を使用しているため、例外の中に a を入れることができません。using(コメントで提案されているように)シークを使用すると、設定されていないオブジェクト参照が取得されます(おそらくdisposeが呼び出されました)。

このファイル ストリームをリセットし、確実に破棄する方法はありますか (まだusingブロックを使用している間)。usingopen を再度呼び出すと、ブロックが少し不幸になるかどうかはわかりませんでした。

ありがとう。

4

1 に答える 1