1

SevenZipSharp ラッパーを使用して、進行中の圧縮を中止することに成功した人はいますか? 私が使用した:

FileCompressionStarted(ByVal sender As Object, ByVal e As SevenZip.FileNameEventArgs) 

いくつかのアクティビティを確認して試しました:

e.cancel = true 

しかし、何も起こりませんでした。圧縮は、すべてのファイルがパックされるまで機能し続けます。何か案は?

4

1 に答える 1

0

他のフォーラムで解決および説明されています。リンクを参照してください。

http://www.vbforums.com/showthread.php?697661-RESOLVED-SevenZipSharp-aborting-compression&p=4272389#post4272389

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

于 2012-11-04T08:16:30.773 に答える