私は、抽出ファイルとディレクトリを圧縮するために、sevenzip.dll を使用し、その機能を実装する winform アプリを持っています。私の問題は、圧縮の進行状況を追跡し、それを progressBar で表示するために、 Sevenzip.compressor クラスの圧縮イベントを使用したいということです。問題は、 CompressionFinished イベントなどの他のすべてのイベントが機能している間、イベントが発生しないことです (デバッグ モードでチェック)。私は、他の開発者が同じ問題に遭遇したことを発見しましたが、誰も答えを提供しませんでした. 注 : dll の抽出クラスも期待どおりに機能し、extractor.extracting イベントを含むすべてのイベントが発生しています。問題を克服する方法についてのヘルプがあれば、感謝します。ここに私が使用しているコードの一部があります:
SevenZipCompressor compressor = new SevenZipCompressor();
// NOT FIRING
compressor.Compressing += new EventHandler<ProgressEventArgs>(compressor_Compressing);
// Firing as expected
compressor.CompressionFinished += new EventHandler<EventArgs>(compressor_CompressionFinished);
compressor.ArchiveFormat = OutArchiveFormat.Zip;
// if this value is true - then no events are fired
compressor.FastCompression = false;
compressor.CompressionMethod = CompressionMethod.Default;
compressor.TempFolderPath = System.IO.Path.GetTempPath();
compressor.EventSynchronization = EventSynchronizationStrategy.AlwaysAsynchronous;
compressor.CompressDirectory(source, output, GeneratePassword(backupID, customerID));