C #: Как я могу получить значок для определенного файла? - PullRequest
3 голосов
/ 29 января 2010

Если у меня есть путь к файлу, есть ли способ получить значок, который Windows отображал бы для этого файла в проводнике Windows?

Ответы [ 2 ]

6 голосов
/ 29 января 2010

Прежде всего, существует несколько размеров изображений, некоторые из которых легче получить, чем другие. Если вам нужен «нормальный» размер один (я думаю, 32x32) и вы можете использовать WPF (ссылаясь на PresentationCore), это отличный способ сделать это:

public System.Windows.Media.ImageSource Icon
{
    get
    {
        if (icon == null && System.IO.File.Exists(Command))
        {
            using (System.Drawing.Icon sysicon = System.Drawing.Icon.ExtractAssociatedIcon(Command))
            {
                // This new call in WPF finally allows us to read/display 32bit Windows file icons!
                icon = System.Windows.Interop.Imaging.CreateBitmapSourceFromHIcon(
                  sysicon.Handle,
                  System.Windows.Int32Rect.Empty,
                  System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions());
            }
        }

        return icon;
    }
}
0 голосов
/ 24 августа 2011
System.Drawing.Icon icon = System.Drawing.Icon.ExtractAssociatedIcon(filePath);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...