如何通过ListView中的文件路径加载图片至PictureBox?报错求助
问题解决:ListView项路径获取错误导致图片加载异常
你遇到的System.NotSupportedException是因为调用listView1.Items[0].ToString()没有得到正确的文件路径。ListViewItem.ToString()返回的是该对象的默认字符串表示(格式类似ListViewItem: {文件路径}),而非你之前添加的纯路径文本,自然无法被Image.FromFile识别。
修正代码
直接获取ListViewItem的Text属性(这才是你添加的文件路径),同时增加空项判断避免索引越界:
listView1.View = View.List; string[] files = Directory.GetFiles(@"d:\New folder (4)"); for (int i = 0; i < files.Length; i++) { listView1.Items.Add(files[i]); } // 加载第一张图片到PictureBox if (listView1.Items.Count > 0) { img1 = Image.FromFile(listView1.Items[0].Text); pictureBox1.Image = img1; }
额外优化建议
如果目标目录可能包含非图片文件,建议增加文件格式校验,避免加载非图片文件时抛出异常:
if (listView1.Items.Count > 0) { string filePath = listView1.Items[0].Text; string[] validImageExts = { ".jpg", ".jpeg", ".png", ".bmp", ".gif" }; string fileExt = Path.GetExtension(filePath).ToLower(); if (validImageExts.Contains(fileExt)) { img1 = Image.FromFile(filePath); pictureBox1.Image = img1; } }
内容的提问来源于stack exchange,提问作者Daniel Lip
相关产品推荐
相关产品推荐

