Code Bye

【紧急求助】一段程序在xp系统下运行报错xxx文件未找到

 

用vs2012写了一段程序,目标框架.net 3.5,xp系统已安装.net3.5,运行File.Exists返回false,无法读写文件

但这段代码在win7下运行正常

50分
呵呵了

这个跟框架有什么关系
既然代码已经能正常运行了,那么框架是没有问题的,否则根本运行不起来

在win7下运行正常,这跟系统有一毛钱关系?你换台win7电脑,也不见得就依然好使

毕竟不是同一台电脑,你得检查这个电脑下到底有没有那个路径啊

路径是绝对准确的,输出对照过很多遍了,因为临时需要把程序放在xp下运行,结果出了这个问题,实在摸不着头脑
引用 1 楼 Z65443344 的回复:

呵呵了

这个跟框架有什么关系
既然代码已经能正常运行了,那么框架是没有问题的,否则根本运行不起来

在win7下运行正常,这跟系统有一毛钱关系?你换台win7电脑,也不见得就依然好使

毕竟不是同一台电脑,你得检查这个电脑下到底有没有那个路径啊

你确定磁盘上有那个文件先,再纠结File.Exists返回false

什么对照很多遍,都是扯淡的,人眼要能看出路径对不对才奇怪了,你以为你是最强大脑啊
你确定用的是绝对路径访问的,而不是相对路径?
如果你用的就是绝对路径,把这个路径复制出来,粘到资源管理器里,看能不能跳转到对应的文件夹啊

除非你的路径很简单,就是D盘根目录
否则那么多文件夹一层套一层的,多个斜杠少个空格什么的太正常了,根本看不出来区别的
还有,遇到问题学会调试,把最终拼接好的路径输出出来看,不要根据代码去猜测
想了很多办法,程序获取当前目录,或者写死在某一路径下,都不行
引用 1 楼 Z65443344 的回复:

呵呵了

这个跟框架有什么关系
既然代码已经能正常运行了,那么框架是没有问题的,否则根本运行不起来

在win7下运行正常,这跟系统有一毛钱关系?你换台win7电脑,也不见得就依然好使

毕竟不是同一台电脑,你得检查这个电脑下到底有没有那个路径啊

都输出查看过了,没辙了,才来求助的
引用 5 楼 Z65443344 的回复:

还有,遇到问题学会调试,把最终拼接好的路径输出出来看,不要根据代码去猜测

代码放出来看,路径是如何拼接的
输出看过,是输出到哪里,文本框里吗
最好输出到文本框里,可以复制出来,看里面是否有空格.

如果是输出到MessageBox,后面多了空格你也看不出来的
而且复制出来之后,可以直接粘进资源管理器里,看路径到底对不对,而不是照着字符串手打

50分
无法读写文件

-》
这不是权限的问题么,,,

private string directory = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
if (!File.Exists(directory + fileName))
{
     throw new Exception(directory + fileName + " doesn""t exist");
}

上层函数会把这个路径输出到控制台
在win7下没问题,应该不是路径拼接、空格的问题吧

引用 8 楼 Z65443344 的回复:

代码放出来看,路径是如何拼接的
输出看过,是输出到哪里,文本框里吗
最好输出到文本框里,可以复制出来,看里面是否有空格.

如果是输出到MessageBox,后面多了空格你也看不出来的
而且复制出来之后,可以直接粘进资源管理器里,看路径到底对不对,而不是照着字符串手打

请问该怎么修改权限?
引用 9 楼 duanzi_peng 的回复:

无法读写文件

-》
这不是权限的问题么,,,

directory + fileName
避免这样做

可能有的系统下,directory 后面带\,有的不带\
你需要使用Path.Combine()方法拼接路径


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明【紧急求助】一段程序在xp系统下运行报错xxx文件未找到