C# 关于"GDI+ 中发生一般性错误。"的问题

thshanshi 2010-08-18 02:11:42
最近在调试程序的时候,不时出现"GDI+ 中发生一般性错误。"这个问题,先把相关代码弄上来。
下面这个程序主要是用来在Treeview控件中根据扩展名获取文件图标,然后生成树形目录,类似于资源管理器的功能
foreach (string ListDetail in ls)//ls为文件名列表
{
if (ListDetail != "")//如果文件名不为空
{
TreeNode tn2 = tn1.Nodes.Add(ListDetail);//建立一个节点

string filetype;//文件扩展名
int exIndex = ListDetail.LastIndexOf('.');
if (exIndex < 0)
{
filetype = null;

}
else
{
filetype = ListDetail.Substring(exIndex, ListDetail.Length - exIndex);//得到文件扩展名
}

Icon icon = GetIconByFileType(filetype, false);//这个函数用来获取文件图标


Image image = icon.ToBitmap();//文件图标保存到image

imageList1.Images.Add(image);//image添加到ImageList控件
tn2.ImageIndex = imageList1.Images.Count - 1;//节点图标索引
tn2.SelectedImageIndex = imageList1.Images.Count - 1;//选定节点的图标索引
image.Dispose();//释放

}
}

上面就是主要代码,当执行到Image image = icon.ToBitmap() 出现这个问题,但是这个问题不是一定会发生的,是时不时会发生,当我点击多个目录节点就可能会出现这个问题,跟节点目录没有关系,跟文件扩展名也没有太大的关系,没有规律性,大家帮忙看下有办法解决吗,可能是哪里的问题,有不明白的地方我再解释一下,谢谢大家啦!
...全文
1271 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
thshanshi 2010-08-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wuyq11 的回复:]

相应的帐户没有写权限。
指定的物理路径不存在。
保存的文件已存在并因某种原因被锁定。
在代码中使用 using 语句,释放 Image 对象所使用的所有资源。
[/Quote]

using语句具体怎么用呢,能否指教一下
thshanshi 2010-08-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jrl5365 的回复:]

你访问的文件夹的操作权限没有吧!!
[/Quote]

具体指的是哪个文件夹呢? 图标我只是通过文件名来获取的,不是通过路径
thshanshi 2010-08-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 porschev 的回复:]

看这代码也释放资源了。。

估计是文件夹权限问题。。
[/Quote]

具体指的是哪个文件夹呢? 图标我只是通过文件名来获取的,不是通过路径
jrl5365 2010-08-18
  • 打赏
  • 举报
回复
你访问的文件夹的操作权限没有吧!!
porschev 2010-08-18
  • 打赏
  • 举报
回复
看这代码也释放资源了。。

估计是文件夹权限问题。。
wuyq11 2010-08-18
  • 打赏
  • 举报
回复
相应的帐户没有写权限。
指定的物理路径不存在。
保存的文件已存在并因某种原因被锁定。
在代码中使用 using 语句,释放 Image 对象所使用的所有资源。

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧