开发环境:WinXP
开发工具:VS2005(C#.NET)
运行环境:Win7
背景:公司的电脑安装了Win7,禁止安装非工作软件,但是需要开发一个小工具,于是就在家里WinXP电脑上写了一个VS2005的小应用程序。在XP上调试运行,一切OK。但是把程序放到Win7运行,其中的一个功能就会报错:System.IO.FileNotFoundException。
原因:
// 程序中用到了下面的代码
// 定义路径
DirectoryInfo diS = new DirectoryInfo(lbSourcePath.Text);
// 获得源文件路径下的文件列表
FileInfo[] fiS = diS.GetFiles();
WinXP下:fiS这个数组中当你使用fiS[0].Name时,fiS[0].Name是:fiS[0]的文件路径+fiS[0]的文件名称。
Win7下:fiS这个数组中当你使用fiS[0].Name时,fiS[0].Name是:fiS[0]的文件名称。
所以相同的程序在这两台机器上面出现了不同的结果,这个问题非常隐蔽,一定要注意!!
本文探讨了一款使用VS2005在WinXP环境下开发的小工具,在迁移到Win7环境下运行时遇到的问题:由于路径解析不同导致的System.IO.FileNotFoundException错误。通过分析代码发现,在WinXP中,获取到的文件路径包含完整路径,而在Win7中仅包含文件名。为了解决这一问题,需要在代码中加入判断,确保路径的正确解析。
2977

被折叠的 条评论
为什么被折叠?



