Как получить эскиз папки? 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;
}
}
}