Imports RARNET
Public Class Form1
Dim d As Decompressor
Dim m_dll As String = Application.StartupPath & "\unrar.dll"
Dim rars As String
Private Sub Form1_DragEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles MyBase.DragEnter
If e.Data.GetDataPresent(DataFormats.FileDrop) Then e.Effect = DragDropEffects.All
End Sub
Private Sub Form1_DragDrop(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles MyBase.DragDrop
Dim dir() As String
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
dir = DirectCast(e.Data.GetData(DataFormats.FileDrop), String())
ListBox1.Items.AddRange(dir)
End If
For i = 0 To ListBox1.Items.Count
list(ListBox1.Items(i).ToString)
Next
End Sub
' This is a function to get all the files in a directory. This will get the files
' in all subdirectories of the parent folder
Private Sub list(ByRef strDirectory As String)
Dim di As New IO.DirectoryInfo(strDirectory)
Dim diar1 As IO.FileInfo() = di.GetFiles()
Dim dra As IO.FileInfo
'list the names of all files in the specified directory
For Each dra In diar1
ListBox1.Items.Add(strDirectory & "\" & dra.ToString)
If dra.ToString.Contains(".rar") Or dra.ToString.Contains(".zip") Then
'MsgBox(dra.ToString)
unrar(strDirectory & "\" & dra.ToString)
End If
Next
End Sub
Public Sub Unpacked(ByVal r As Decompressor.RAREntry)
StatusBar1.Panels.Item(0).Text = r.FileName & " Unpacked"
End Sub
Private Sub unrar(ByVal szFile As String)
d = New Decompressor(szFile)
AddHandler d.OnUnpack, AddressOf Unpacked
'AddHandler d.Unpacking, AddressOf InProgress
For Each r As Decompressor.RAREntry In d.RARFiles
Dim lvitem As New ListViewItem(r.FileName)
' Place a check mark next to the item.
lvitem.SubItems.Add(r.FileAttr)
lvitem.SubItems.Add(r.PackSize)
lvitem.SubItems.Add(r.UnpSize)
lvitem.SubItems.Add(r.FileCRC)
Lv.Items.Add(lvitem)
Next
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If System.IO.File.Exists(m_dll) Then
Else
MsgBox(m_dll & " cannot be found.")
Application.Exit()
End If
Lv.View = View.Details
Lv.GridLines = True
' Create some columns
Lv.Columns.Add("File", 200, HorizontalAlignment.Left)
Lv.Columns.Add("Attr", 30, HorizontalAlignment.Left)
Lv.Columns.Add("Packed Size", 100, HorizontalAlignment.Left)
Lv.Columns.Add("Unpacked Size", 100, HorizontalAlignment.Center)
Lv.Columns.Add("CRC", 120, HorizontalAlignment.Center)
End Sub
End Class