Как получить эскиз папки? C#

В основном, у меня есть музыкальная папка. А внутри папки с музыкой есть папки с альбомами. Внутри каждого альбома есть свой собственный thumbnail.png.

У меня есть браузер папок для всплывающих окон, и я могу выбрать музыкальную папку. Когда я выбираю музыкальную папку, папки папок отображаются в виде списка, но я не смог добавить миниатюру изображения в качестве значка для папки альбома.

Это код, с которым я работаю.

private void button1_Click(object sender, EventArgs e)
{
    folderBrowserDialog1.Description = "Choose the Music folder.";
    if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
    {
        listView1.Items.Clear();
        string[] dirs = Directory.GetDirectories(folderBrowserDialog1.SelectedPath);

        foreach(string file in dirs)
        {
            listView1.Items.Add(Path.GetFileNameWithoutExtension(file));
        }
    }
}

Я попытался использовать циклы, которые будут искать внутри файла каждой папки альбом "thumbnail.png", а затем индексировать его и добавлять в коллекцию изображений или что-то в этом роде. Но ничего, что я пробовал работать, поэтому любая помощь или ссылки о том, как эти работы будут высоко оценены.

Я публикую это в 5 часов утра. Я не спал весь день и ночь, но до сих пор не могу понять, как это сделать. Это, вероятно, будет трудно понять / прочитать, поэтому я постараюсь отредактировать его, когда проснусь, заранее извините.

1 ответ

Решение
private void button1_Click(object sender, EventArgs e)
    {
        var imageList = new ImageList();
        if (folderBrowserDialog1.ShowDialog()==DialogResult.OK)
        {
            var directories = Directory.GetDirectories(folderBrowserDialog1.SelectedPath);
            foreach (string item in directories)
            {
                FileInfo file = new FileInfo(item);                    
                imageList.Images.Add("Key" + file.Name, Image.FromFile(file.ToString() + @"\thumbnail.png"));
                listView1.LargeImageList = imageList;
                var listViewItem = listView1.Items.Add(file.Name);
                listViewItem.ImageKey = "Key" + file.Name;

            }

        }
    }
Другие вопросы по тегам