开发环境: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]的文件名称。
所以相同的程序在这两台机器上面出现了不同的结果,这个问题非常隐蔽,一定要注意!!