Listview mit Dateien aus Ordner füllen + Icons

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von tuvok.

    Listview mit Dateien aus Ordner füllen + Icons

    Hallo Ihr,
    ich möchte mir ein ListView mit Dateien befüllen lassen + Icons
    Ich habe mir aus einem Projekt den Listview Part rausgeholt und habe folgendes gemacht:

    1. in einem DataGridview klicke ich eine Spalte Doppelt an .. diese füllt mir meine Variablen und fügt den rest hinzu
    das funktioniert auch einwandfrei

    VB.NET-Quellcode

    1. Label3.Text = "\\" & Quicklaunch & "\user\Anwendungsdaten\Microsoft\Internet Explorer\Quick Launch\"
    2. LV2Quicklaunch = "\\" & Quicklaunch & "\user\Anwendungsdaten\Microsoft\Internet Explorer\Quick Launch\"
    3. Label2.Text = "\\" & Startmenu & "\user\Start Menu\"
    4. LV1Startmenu = "\\" & Startmenu & "\user\Start Menu\"
    5. Me.LV1Start(LV1Startmenu, ListView1, ImageList1)



    2. jetzt möchte icht, dass mir das ListView alles anzeigt was ich in diesem Ordner drin habe

    VB.NET-Quellcode

    1. #Region "Listview füllen mit PC Startmenü"
    2. Private Sub LV1Start(ByVal folder As String, ByVal ltv As ListView, ByVal imgList As ImageList)
    3. If String.IsNullOrEmpty(folder) Then Throw New ArgumentNullException("Path")
    4. Dim locDirInfo As IO.DirectoryInfo = Nothing
    5. Dim locLtvItem As ListViewItem = Nothing
    6. With ltv
    7. Try
    8. .BeginUpdate()
    9. ' Spalten und Zeilen zurücksetzen
    10. .Items.Clear()
    11. .Columns.Clear()
    12. ' Spalten hinzufügen
    13. .Columns.Add("Name", 150, HorizontalAlignment.Left)
    14. .Columns.Add("Größe (Bytes)", 0, HorizontalAlignment.Right)
    15. .Columns.Add("Typ", 0, HorizontalAlignment.Left)
    16. .Columns.Add("Letzte Änderung", 0, HorizontalAlignment.Left)
    17. ' Darstellung
    18. .GridLines = True
    19. .FullRowSelect = True
    20. .MultiSelect = False
    21. .View = View.Details
    22. ' ImageList zurücksetzen
    23. imgList.Images.Clear()
    24. ' ImageList zuweisen
    25. .SmallImageList = imgList
    26. ' Dateien ermitteln
    27. locDirInfo = New IO.DirectoryInfo(folder)
    28. If Not locDirInfo.Exists Then Throw New IO.DirectoryNotFoundException
    29. For Each locFi As IO.FileInfo In locDirInfo.GetFiles("*.*", IO.SearchOption.TopDirectoryOnly)
    30. ' Icon zur ImageList hinzufügen - Key = Dateiendung
    31. If Not imgList.Images.ContainsKey(locFi.Extension) Then
    32. imgList.Images.Add(locFi.Extension, Icon.ExtractAssociatedIcon(locFi.FullName))
    33. End If
    34. locLtvItem = New ListViewItem(New String() {locFi.Name, locFi.Length.ToString("n"), locFi.Extension, locFi.LastAccessTime.ToString})
    35. locLtvItem.Tag = locFi ' Für spätere Verarbeitung der Datei merken
    36. locLtvItem.ImageKey = locFi.Extension ' Icon zuweisen
    37. .Items.Add(locLtvItem)
    38. Next
    39. ' Spaltenbreite automatisch anpassen
    40. '.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent)
    41. Catch ex As Exception
    42. Throw ex
    43. Finally
    44. .EndUpdate()
    45. locDirInfo = Nothing
    46. locLtvItem = Nothing
    47. End Try
    48. End With
    49. End Sub
    50. #End Region


    jetzt bekomme ich einen Fehler
    an der Stelle

    VB.NET-Quellcode

    1. Catch ex As Exception
    2. Throw ex

    wo ist da das Problem? hat er Probleme .lnk also Verknüpfungen anzuzeigen wegen den Icons evtl.? oder woran liegt das?
    Weil sonst habe ich keine Probleme wenn ich in nem Ordner mit dieser Variante Dateien anzeigen lassen möchte wie z.B. Bilder oder so

    Wäre schön, wenn mir jemand helfen würde..
    ja aber der Pfad ist doch Korrekt ich habe ihn auch kopiert usw. ich lasse mir den pfad auch in nem Label anzeigen..
    oder liegt es daran, dass filepath nicht mit absoluten Pfaden zurecht kommt?

    EDIT: er zeigt ja auch an das er eine Verknüpfung die in dem Ordner ist nicht anzeigen kann .. also ist doch der Pfad korrekt