3

私は vb.net を使用していますが、アーカイブを抽出するときにどのファイルが抽出されているかを表示する方法を知りたいと思っていました。私はすでに回避策を持っていますが、それは「チート」であり、抽出中の現在のファイルを実際には表示しません。

Public Class Form1
    Private listItemIndex As Integer = 0

    Public Sub ext_Extracting(ByVal sender As Object, ByVal e As SevenZip.ProgressEventArgs)
        Dim ext As SevenZipExtractor = New SevenZipExtractor("C:\Test.7z")
        If listItemIndex < ext.ArchiveFileNames.Count Then
            Label1.Text = ext.ArchiveFileNames.Item(listItemIndex).ToString()
            listItemIndex += 1
        End If
    End Sub
End Class
4

1 に答える 1

0

この回答はOPによって書かれましたが、質問に誤って編集されました:

はい、分かりました。「FileInfo.FileName」を「SevenZip.FileInfoEventArgs」に追加し、抽出時にそれを参照する必要がありました。

Public Sub FileExtractionStarted(ByVal sender As Object, ByVal e As SevenZip.FileInfoEventArgs)
    Label1.Text = e.FileInfo.FileName
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    SevenZipExtractor.SetLibraryPath("C:\7z.dll")
    Dim ext As SevenZipExtractor = New SevenZipExtractor("C:\test.7z")
    ext.BeginExtractArchive("C:\Test")
    AddHandler ext.ExtractionFinished, AddressOf ext_ExtractionFinished
    AddHandler ext.Extracting, AddressOf ext_Extracting
    AddHandler ext.FileExtractionStarted, AddressOf FileExtractionStarted '<---
End Sub
于 2013-09-17T19:06:31.957 に答える