Xp上坑人的相对路径

一直运行正常的程序,居然在客户现场出错了,出错的原因是“未能找到路径。。。。的一部分”,然而文件确实在应该的位置,只是从日志中可以看出用相对路径解析出的绝对路径出了问题。

继而在客户现场发现了一个规律,每次在数据导出后,才会报上述异常。不导出绝不报异常!

导出功能很简单,首先通过SaveFileDialog选择路径,然后通过另一个控件进行数据导出。总以为会在控件导出数据这步发现问题,可是这一步无懈可击,但却花了大把时间。。。

最后经过查阅资料和自己代码测试,最终证明(我们的程序是winform程序):

1、C#中解析相对路径时,是以System.Environment.CurrentDirectory为当前路径进行解析的。

2、SaveFileDialog会改变System.Environment.CurrentDirectory的值,使其指向用户在SaveFileDialog上选择的路径。

当然,上述两条结论在XP上成立。在win7上不会出现第2中情况。

正好也解释了,为什么我们这边是好的,而客户那边报错。因为我们用的是win7,而客户还是XP。

时间: 2024-10-28 20:42:31

Xp上坑人的相对路径的相关文章

windows XP上实现python2.7.5和python3.4.3共存

windows XP上实现python2.7.5和python3.4.3共存过程记录: 1. 首先安装python2.7.5和python3.4.3,两个版本安装顺序不分前后; 2. 检查系统环境变量中是否存在以下四个变量,缺少则手动加入 c:\Python27; c:\Python27\Scripts; c:\Python34; c:\Python34\Scripts; (python安装路径为C:Python27则环境变量为c:\Python27;python安装路径为D:Python27则

解决msi文件在XP上安装未完成(提示安装程序被中断,未能安装app。需要重新启动该安装程序进行重试)的问题。

如图所示,我利用Visual Studio 2015制作了一个小程序.基于.Net 4.0.用VS的Install扩展,新建Install项目进行打包.打包为.msi文件.该安装文件在已经安装了 .Net Framework4.0的情况下仍然出现这个问题,百思不得其解. 查阅了Stack Overflow的相关资料,得到了追踪故障源的方法——命令行安装.msi程序,可以看到log日志.即 msiexec /i a.msi /l*v a.log 将会生成名为“a.log”的日志.在日志中发现如下代

vs2012+ winform+.net4.0发布如何在xp上运行

今天在英文版vs2013打包发布4.0(非4.0 client)的winform时,遇到了在xp上无法运行的情况,.net framework 4.0在xp上已安装.在打包前,winform工程,即菜单中的Project下的工程属性里,Application选项中的Target framework选择的是.NET Framework 4,整个工程运行之后,然后使用bin->DEBUG目录下的exe,使用setup factory打包成安装包,结果在xp在安装之后(.net framework在安

XP上的cocos2d-x

准备工作: 需要下载的东西有----1. Visual Studio 2010.(XP上只能安到2010的!之前有,但给卸载了,下了13的,木的用,XP用不了又得删,重新安装了2010) 2. Cocos2d-x.(这个同样下错了,,下了最新的cocos2d-x-3.7,撞墙了才看到这句话"3.x之后需要vs2012,如果是苹果用户请无视",默默的又重新下载了cocos2d-x-2.2.6) 3  Python.(这个第一次下载下了个垃圾骗子广告贼多,安装的时候才看出来,眼神儿啊!去官

Atitit.js获取上传文件全路径

1. 默认的value只能获取文件名..安全原因.. 1 2. Firefox浏览器的读取 1 3. Html5 的file api 2 4. 解决方法::使用applet插件 2 5. 参考 3 1. 默认的value只能获取文件名..安全原因.. js是无法获取file 控件的值的,你要获取的话可以通过后台程序语言用json或者xml之类的格式来返回被上传的文件路径. file是一种特殊的input,不能被赋值,也不能被javascript取值,只能随表单提交,而且随表单提交的也是file路

asp.net 客户端上传文件全路径获取方法

asp.net  获取客户端上传文件全路径方法: eg:F:\test\1.doc 基于浏览器安全问题,浏览器将屏蔽获取客户端文件全路径的方法,只能获取到文件的文件名,如果需要获取全路径则需要另想其他方法 如下提供两种方法: 方法1:工具 -> Internet选项 -> 安全 -> 自定义级别 -> 找到“其他”中的“将本地文件上载至服务器时包含本地目录路径”,选中“启用”即可. 方法2: function getPath() { //获取file 控件对象 var obj =

ie下获取上传文件全路径

ie下获取上传文件全路径,3.5之后的火狐是没法获取上传文件全路径的 1 /*获取上传文件路径*/ 2 function getFilePath(obj) { 3 var form = $(this).parents("form"); 4 form.validate(); 5 var fileObj = obj; 6 if (fileObj) { 7 if (window.navigator.userAgent.indexOf("MSIE") >= 1) {

截取上传的文件路径

function lastname(){ //获取欲上传的文件路径var filepath = document.getElementById("file1").value; //为了避免转义反斜杠出问题,这里将对其进行转换var re = /(\\+)/g; var filename=filepath.replace(re,"#");//对路径字符串进行剪切截取var one=filename.split("#");//获取数组中最后一个,即文

【转】VS2012编译出来的程序,在XP上运行,出现“.exe 不是有效的 win32 应用程序” “not a valid win32 application”

原文网址:http://www.cnblogs.com/Dageking/archive/2013/05/15/3079394.html VS2012编译出来的程序,在XP上运行,出现“.exe 不是有效的 win32 应用程序” “not a valid win32 application” 升级vs2010到vs2012,突然发现build出来的应用程序无法运行,提示“不是有效的 win32 应用程序” or “not a valid win32 application”. 参考CSDN论坛