SevenZipSharp ラッパーを使用して、進行中の圧縮を中止することに成功した人はいますか? 私が使用した:
FileCompressionStarted(ByVal sender As Object, ByVal e As SevenZip.FileNameEventArgs)
いくつかのアクティビティを確認して試しました:
e.cancel = true
しかし、何も起こりませんでした。圧縮は、すべてのファイルがパックされるまで機能し続けます。何か案は?
SevenZipSharp ラッパーを使用して、進行中の圧縮を中止することに成功した人はいますか? 私が使用した:
FileCompressionStarted(ByVal sender As Object, ByVal e As SevenZip.FileNameEventArgs)
いくつかのアクティビティを確認して試しました:
e.cancel = true
しかし、何も起こりませんでした。圧縮は、すべてのファイルがパックされるまで機能し続けます。何か案は?
他のフォーラムで解決および説明されています。リンクを参照してください。
PS。誰かが必要な場合に備えて、ここで解決策を持っているだけです
e.cancelはライブラリでうまく処理されません。これは、(私が予想したように) e.cancel = trueを一度設定すると、ライブラリがこのリクエストをキャッチできない可能性があるためです。これがsevenzipsharp.dllの問題か7z.dllかはわかりませんが、投稿されたコードでは、[中止]ボタンを何度もクリックすると、最終的にライブラリが圧縮を中止しました!!!
したがって、実装は次のようにする必要があります。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
abort = True
console.addLine("Abort requested...")
End Sub
Private Sub fFileCompressionStarted(ByVal sender As Object, ByVal e As SevenZip.FileNameEventArgs)
Dim s As String = ""
If abort Then
e.Cancel = True
s = " aborted"
End If
console.addLine("[CompressionStarted event] e.Filename = " + e.FileName + ", e.PercentDone = " + e.PercentDone.ToString + s)
End Sub
Public Sub fCompressionFinished(ByVal sender As Object, ByVal e As System.EventArgs)
console.addLine("[CompressionFinished event]")
abort = False
End Sub
敬具、エドゥアール・ゴラ、YO3HCV