Displaying directories and their contents in ListView : ListView « GUI « VB.Net Tutorial






Displaying directories and their contents in ListView
Imports System.IO
Imports System.Windows.Forms

public class LoadFileDirectoryInformationTreeView

   public Shared Sub Main
        Application.Run(New FrmListView)
   End Sub
End class
Public Class FrmListView
   Inherits Form

#Region " Windows Form Designer generated code "

   Public Sub New()
      MyBase.New()

      'This call is required by the Windows Form Designer.
      InitializeComponent()

      'Add any initialization after the InitializeComponent() call

   End Sub

   'Form overrides dispose to clean up the component list.
   Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
      If disposing Then
         If Not (components Is Nothing) Then
            components.Dispose()
         End If
      End If
      MyBase.Dispose(disposing)
   End Sub

   ' display labels for current location in directory tree
   Friend WithEvents lblCurrent As Label
   Friend WithEvents lblDisplay As Label

   ' displays contents of current directory
   Friend WithEvents lvwBrowser As ListView

   ' specifies images for file icons and folder icons
   Friend WithEvents ilsFileFolder As ImageList


   'Required by the Windows Form Designer
   Private components As System.ComponentModel.IContainer

   'NOTE: The following procedure is required by the Windows Form Designer
   'It can be modified using the Windows Form Designer.  
   'Do not modify it using the code editor.
   <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
      Me.components = New System.ComponentModel.Container()
      Me.ilsFileFolder = New System.Windows.Forms.ImageList(Me.components)
      Me.lvwBrowser = New System.Windows.Forms.ListView()
      Me.lblCurrent = New System.Windows.Forms.Label()
      Me.lblDisplay = New System.Windows.Forms.Label()
      Me.SuspendLayout()
      '
      'ilsFileFolder
      '
      Me.ilsFileFolder.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit
      Me.ilsFileFolder.ImageSize = New System.Drawing.Size(16, 16)
      Me.ilsFileFolder.TransparentColor = System.Drawing.Color.Transparent
      '
      'lvwBrowser
      '
      Me.lvwBrowser.Location = New System.Drawing.Point(16, 88)
      Me.lvwBrowser.Name = "lvwBrowser"
      Me.lvwBrowser.RightToLeft = System.Windows.Forms.RightToLeft.No
      Me.lvwBrowser.Size = New System.Drawing.Size(448, 232)
      Me.lvwBrowser.SmallImageList = Me.ilsFileFolder
      Me.lvwBrowser.TabIndex = 2
      Me.lvwBrowser.View = System.Windows.Forms.View.List
      '
      'lblCurrent
      '
      Me.lblCurrent.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
      Me.lblCurrent.ForeColor = System.Drawing.SystemColors.WindowText
      Me.lblCurrent.Location = New System.Drawing.Point(16, 16)
      Me.lblCurrent.Name = "lblCurrent"
      Me.lblCurrent.Size = New System.Drawing.Size(112, 23)
      Me.lblCurrent.TabIndex = 0
      Me.lblCurrent.Text = "Now in Directory:"
      '
      'lblDisplay
      '
      Me.lblDisplay.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
      Me.lblDisplay.ForeColor = System.Drawing.SystemColors.WindowText
      Me.lblDisplay.Location = New System.Drawing.Point(128, 16)
      Me.lblDisplay.Name = "lblDisplay"
      Me.lblDisplay.Size = New System.Drawing.Size(344, 56)
      Me.lblDisplay.TabIndex = 1
      '
      'FrmListView
      '
      Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
      Me.ClientSize = New System.Drawing.Size(488, 341)
      Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.lvwBrowser, Me.lblDisplay, Me.lblCurrent})
      Me.Name = "FrmListView"
      Me.Text = "ListViewTest"
      Me.ResumeLayout(False)

   End Sub

#End Region

   Dim currentDirectory As String = Directory.GetCurrentDirectory()

   Private Sub lvwBrowser_Click(ByVal sender As System.Object, _
      ByVal e As System.EventArgs) Handles lvwBrowser.Click

      If lvwBrowser.SelectedItems.Count <> 0 Then
         If lvwBrowser.Items(0).Selected Then
            Dim directoryObject As DirectoryInfo = _
               New DirectoryInfo(currentDirectory)

            If Not (directoryObject.Parent Is Nothing) Then
               LoadFilesInDirectory(directoryObject.Parent.FullName)
            End If
         Else
            Dim chosen As String = lvwBrowser.SelectedItems(0).Text
            If Directory.Exists(currentDirectory & "\" & chosen) Then
               If currentDirectory = "C:\" Then
                  LoadFilesInDirectory(currentDirectory & chosen)
               Else
                  LoadFilesInDirectory(currentDirectory & "\" & chosen)
               End If
            End If

         End If

         lblDisplay.Text = currentDirectory
      End If

   End Sub 
   Public Sub LoadFilesInDirectory(ByVal currentDirectoryValue As String)
      lvwBrowser.Items.Clear()
      lvwBrowser.Items.Add("Go Up One Level")
      currentDirectory = currentDirectoryValue
      Dim newCurrentDirectory As DirectoryInfo = New DirectoryInfo(currentDirectory)
      Dim directoryArray As DirectoryInfo() = newCurrentDirectory.GetDirectories()
      Dim fileArray As FileInfo() = newCurrentDirectory.GetFiles()
      Dim dir As DirectoryInfo
      For Each dir In directoryArray
         Dim newDirectoryItem As ListViewItem = lvwBrowser.Items.Add(dir.Name)
      Next

      Dim file As FileInfo
      For Each file In fileArray
         Dim newFileItem As ListViewItem =lvwBrowser.Items.Add(file.Name)
      Next
   End Sub 

   Private Sub FrmListView_Load(ByVal sender As System.Object, _
      ByVal e As System.EventArgs) Handles MyBase.Load
      LoadFilesInDirectory(currentDirectory)
      lblDisplay.Text = currentDirectory
   End Sub 

End Class








14.15.ListView
14.15.1.ListView DemoListView Demo
14.15.2.Creating List Views in CodeCreating List Views in Code
14.15.3.Add columns and rows to a ListViewAdd columns and rows to a ListView
14.15.4.Change ListView state: LargeIcon, SmallIcon, List and DetailChange ListView state: LargeIcon, SmallIcon, List and Detail
14.15.5.Add and delete ListView ItemAdd and delete ListView Item
14.15.6.ListView Item Check eventListView Item Check event
14.15.7.Displaying directories and their contents in ListViewDisplaying directories and their contents in ListView
14.15.8.ListView ItemActivate eventListView ItemActivate event
14.15.9.ListView with CheckBox cellListView with CheckBox cell
14.15.10.Add file name to ListViewAdd file name to ListView
14.15.11.Runtime ListViewRuntime ListView