如何获取文件夹的缩略图? C#

时间:2018-01-12 11:40:42

标签: c# filedialog special-folders

基本上,我有一个音乐文件夹。在音乐文件夹中,它有专辑文件夹。每个相册文件夹里面都有自己的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”文件,然后将其编入索引并将其添加到imagecollection或其他内容中。但是我没有尝试过任何工作,所以任何帮助或链接都将非常感谢这些工作。

我是在凌晨5点发布的。我一直都在白天和晚上,但我仍然无法弄清楚如何做到这一点。这可能很难理解/阅读,所以当我醒来时我会尝试编辑它,对不起提前。

1 个答案:

答案 0 :(得分:0)

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;

            }

        }
    }