Hallo Michael,
für dieses Beispiel benötigst Du eine Form, einen Button, ein ListView, eine ImageList und ein FolderBrowserDialog.
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Button1.Click
'Ordnerauswahl
With Me.FolderBrowserDialog1
If .ShowDialog = Windows.Forms.DialogResult.OK Then
'Tabelle füllen
FillDataTable(.SelectedPath)
'Bilder aus der ImageList entfernen
Me.ImageList1.Images.Clear()
With Me.ListView1
'Bearbeitung beginnen
.BeginUpdate()
'event. vorhandene Einträge entfernen
.Items.Clear()
.View = View.Details
.SmallImageList = Me.ImageList1
'Spalten erzeugen, wenn nicht vorhanden
If .Columns.Count = 0 Then
For i As Integer = 0 To 3
Select Case i
Case 0
.Columns.Add(DT.Columns(i).ColumnName, 40)
Case 1
.Columns.Add(DT.Columns(i).ColumnName, 200)
Case 2
.Columns.Add(DT.Columns(i).ColumnName, 80, _
HorizontalAlignment.Right)
Case Else
.Columns.Add(DT.Columns(i).ColumnName, 80, _
HorizontalAlignment.Center)
End Select
Next
End If
For i As Integer = 0 To DT.Rows.Count - 1
Dim DR As DataRow = DT.Rows(i)
Dim ID As Long = DR.Item("ID")
Dim FileName As String = DR.Item("FileName")
Dim FileSize As Integer = DR.Item("FileSize")
Dim FileExtension As String = DR.Item("FileExtension")
Dim FullName As String = DR.Item("FullName")
'Bild der Datei ermitteln und in ImageList eintragen
Dim bmp As System.Drawing.Bitmap = GetFileBitmap( _
FullName)
Me.ImageList1.Images.Add(bmp)
'Neues ListViewItem erstellen (ID.ToString als Text, i
' als ImageIndex)
Dim LVI As New ListViewItem(ID.ToString("00"), i)
'Dem Item SubItems zuordnen
LVI.SubItems.Add(FileName)
LVI.SubItems.Add(String.Format("{0:#,##0} KB", FileSize _
/ 1024))
LVI.SubItems.Add(FileExtension)
'Das ListViewItem dem ListView zuordnen
.Items.Add(LVI)
Next
'Bearbeitung beenden
.EndUpdate()
End With
Else
Exit Sub
End If
End With
End Sub
Private Sub FillDataTable(ByVal Folder As String)
Dim id As Long = 1
Dim DR As DataRow = Nothing
DT = New DataTable("Test")
With DT
.Columns.Add("ID", GetType(Long))
.Columns.Add("FileName", GetType(String))
.Columns.Add("FileSize", GetType(Long))
.Columns.Add("FileExtension", GetType(String))
.Columns.Add("FullName", GetType(String))
End With
' Directory-Object erstellen
Dim oDir As New System.IO.DirectoryInfo(Folder)
' alle Dateien des Ordners
Dim oFiles As System.IO.FileInfo() = oDir.GetFiles()
For Each file As System.IO.FileInfo In oFiles
DR = DT.NewRow
With DR
.Item("ID") = id
.Item("FileName") = file.Name
.Item("FileSize") = file.Length
.Item("FileExtension") = file.Extension
.Item("FullName") = file.FullName
End With
DT.Rows.Add(DR)
id += 1
Next
End Sub
Private Function GetFileBitmap(ByVal FileName As String) As _
System.Drawing.Bitmap
'Prüfen ob Datei existiert
If System.IO.File.Exists(FileName) Then
'Icon (Symbol) ermitteln...
Dim oIcon As System.Drawing.Icon = _
System.Drawing.Icon.ExtractAssociatedIcon(FileName)
' ... Bitmap zurückgeben
Return oIcon.ToBitmap
Else
Return Nothing
End If
End Function
End Class Gruß Frank
Beitrag wurde zuletzt am 29.06.13 um 16:07:51 editiert. |