統合アーカイバプロジェクトは、x64に対応していないものがほとんどなので...。
CodePlexで、比較的RATINGが高いSevenZipSharpを検討してみます。
Imports SevenZip
Public Class Form1
Private WithEvents extractor As SevenZipExtractor
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs)
Handles Button1.Click
Dim archiveFile As String = "C:\SevenZipSharp\files\SevenZipSharp.7z"
Dim libraryPath As String = System.IO.
Path.Combine(System.IO.Path.GetDirectoryName(
Application.ExecutablePath),
"SevenZipSharp\7z.dll")
SevenZipExtractor.SetLibraryPath(libraryPath)
extractor = New SevenZipExtractor(archiveFile)
Try
Debug.Print("SevenZipExtractor:FileName:{0}", extractor.FileName)
Debug.Print("SevenZipExtractor:FilesCount:{0}", extractor.FilesCount)
Debug.Print("SevenZipExtractor:IsSolid:{0}", extractor.IsSolid)
Debug.Print("SevenZipExtractor:PackedSize:{0}", extractor.PackedSize)
Debug.Print("SevenZipExtractor:Password:{0}", extractor.Password)
Debug.Print("SevenZipExtractor:UnpackedSize:{0}", extractor.UnpackedSize)
Debug.Print("SevenZipExtractor:Format:{0}", extractor.Format)
For Each aprop As ArchiveProperty In extractor.ArchiveProperties
Debug.Print("ArchiveProperty:{0}:{1}", aprop.Name, aprop.Value)
Next
For Each info As ArchiveFileInfo In extractor.ArchiveFileData()
Debug.Print("ArchiveFileInfo:FileName:{0}", info.FileName)
Debug.Print("ArchiveFileInfo:Index:{0}", info.Index)
Debug.Print("ArchiveFileInfo:IsDirectory:{0}", info.IsDirectory)
Debug.Print("ArchiveFileInfo:Size:{0}", info.Size)
Debug.Print("ArchiveFileInfo:Attributes:{0}", info.Attributes)
Debug.Print("ArchiveFileInfo:Comment:{0}", info.Comment)
Debug.Print("ArchiveFileInfo:Crc:{0}", info.Crc)
Debug.Print("ArchiveFileInfo:CreationTime:{0}", info.CreationTime)
Debug.Print("ArchiveFileInfo:LastWriteTime:{0}", info.LastWriteTime)
Debug.Print("ArchiveFileInfo:LastAccessTime:{0}", info.LastAccessTime)
Next
Catch ex As Exception
Finally
extractor.Dispose()
End Try
End Sub
End Class
こんな感じ。
SetLibraryPathメソッドで、7zファイルを指定するのがミソっぽい。
残念なことに、圧縮後のサイズを取得するプロパティが実装されていない。
ソースを追いかけると、ただ実装されていないだけ。LHMTNな表示をするためには、圧縮後のサイズがないと、Rateも表示できないし。
不採用だな。
0 件のコメント:
コメントを投稿