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