Freigeben über


Gewusst wie: Extrahieren eines mit einer Datei verknüpften Symbols in Windows Forms

Aktualisiert: November 2007

Viele Dateien verfügen über eingebettete Symbole, die eine visuelle Darstellung des zugeordneten Dateityps ermöglichen. Zum Beispiel enthalten Microsoft Word-Dokumente ein Symbol, das sie als Word-Dokumente kennzeichnet. Beim Anzeigen von Dateien in einem Listensteuerelement oder einem Tabellensteuerelement möchten Sie möglicherweise das Symbol, das den Dateityp darstellt, jeweils neben dem Dateinamen anzeigen lassen. Dies kann auf einfache Weise mithilfe der ExtractAssociatedIcon-Methode ausgeführt werden.

Beispiel

Das folgende Codebeispiel zeigt, wie das einer Datei zugeordnete Symbol extrahiert wird und der Dateiname sowie das zugehörige Symbol im ListView-Steuerelement angezeigt werden können.

Private listView1 As ListView
Private imageList1 As ImageList


Public Sub ExtractAssociatedIconEx()

    ' Initialize the ListView, ImageList and Form.
    listView1 = New ListView()
    imageList1 = New ImageList()
    listView1.Location = New Point(37, 12)
    listView1.Size = New Size(161, 242)
    listView1.SmallImageList = imageList1
    listView1.View = View.SmallIcon
    Me.ClientSize = New System.Drawing.Size(292, 266)
    Me.Controls.Add(Me.listView1)
    Me.Text = "Form1"

    ' Get the c:\ directory.
    Dim dir As New System.IO.DirectoryInfo("c:\")

    Dim item As ListViewItem
    listView1.BeginUpdate()
    Dim file As FileInfo
    For Each file In dir.GetFiles()

        ' Set a default icon for the file.
        Dim iconForFile As Icon = SystemIcons.WinLogo

        item = New ListViewItem(file.Name, 1)

        ' Check to see if the image collection contains an image
        ' for this extension, using the extension as a key.
        If Not (imageList1.Images.ContainsKey(file.Extension)) Then

            ' If not, add the image to the image list.
            iconForFile = System.Drawing.Icon.ExtractAssociatedIcon(file.FullName)
            imageList1.Images.Add(file.Extension, iconForFile)
        End If
        item.ImageKey = file.Extension
        listView1.Items.Add(item)

    Next file
    listView1.EndUpdate()
End Sub
ListView listView1;
ImageList imageList1;

public void ExtractAssociatedIconEx()
{
    // Initialize the ListView, ImageList and Form.
    listView1 = new ListView();
    imageList1 = new ImageList();
    listView1.Location = new Point(37, 12);
    listView1.Size = new Size(151, 262);
    listView1.SmallImageList = imageList1;
    listView1.View = View.SmallIcon;
    this.ClientSize = new System.Drawing.Size(292, 266);
    this.Controls.Add(this.listView1);
    this.Text = "Form1";

    // Get the c:\ directory.
    System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(@"c:\");

    ListViewItem item;
    listView1.BeginUpdate();

    // For each file in the c:\ directory, create a ListViewItem
    // and set the icon to the icon extracted from the file.
    foreach (FileInfo file in dir.GetFiles())
    {
        // Set a default icon for the file.
        Icon iconForFile = SystemIcons.WinLogo;

        item = new ListViewItem(file.Name, 1);
        iconForFile = Icon.ExtractAssociatedIcon(file.FullName);

        // Check to see if the image collection contains an image
        // for this extension, using the extension as a key.
        if (!imageList1.Images.ContainsKey(file.Extension))
        {
            // If not, add the image to the image list.
            iconForFile = System.Drawing.Icon.ExtractAssociatedIcon(file.FullName);
            imageList1.Images.Add(file.Extension, iconForFile);
        }
        item.ImageKey = file.Extension;
        listView1.Items.Add(item);
    }
    listView1.EndUpdate();
}

Kompilieren des Codes

So kompilieren Sie das Beispiel

  • Fügen Sie den oben aufgeführten Code in ein Windows Form ein, und rufen Sie die ExtractAssociatedIconExample-Methode aus dem Konstruktor oder aus der Load-Ereignisbehandlungsmethode des Formulars auf.

    Stellen Sie sicher, dass das Formular den System.IO-Namespace importiert.

Siehe auch

Weitere Ressourcen

Bilder, Bitmaps und Metadateien

ListView-Steuerelement (Windows Forms)