一直运行正常的程序,居然在客户现场出错了,出错的原因是“未能找到路径。。。。的一部分”,然而文件确实在应该的位置,只是从日志中可以看出用相对路径解析出的绝对路径出了问题。
继而在客户现场发现了一个规律,每次在数据导出后,才会报上述异常。不导出绝不报异常!
导出功能很简单,首先通过SaveFileDialog选择路径,然后通过另一个控件进行数据导出。总以为会在控件导出数据这步发现问题,可是这一步无懈可击,但却花了大把时间。。。
最后经过查阅资料和自己代码测试,最终证明(我们的程序是winform程序):
1、C#中解析相对路径时,是以System.Environment.CurrentDirectory为当前路径进行解析的。
2、SaveFileDialog会改变System.Environment.CurrentDirectory的值,使其指向用户在SaveFileDialog上选择的路径。
当然,上述两条结论在XP上成立。在win7上不会出现第2中情况。
正好也解释了,为什么我们这边是好的,而客户那边报错。因为我们用的是win7,而客户还是XP。
时间: 2024-10-28 20:42:31