绝对路径与相对路径的区别【2】--release和debug这两种情况下对本地文件操作不一致的问题...

总感觉题目起的有点别扭,但是不明白这是不是应该归因于这两种编译模式的区别,所以只能用这个长而晦涩的题目了。
我们在做一些应用程序时,经常会用XML文件存放一些程序的配置信息,甚或一些少量数据信息,而且有时候要提供给最终用户编辑这些信息的功能,用户所作的编辑也应该被永久保存在这个XML文件中。以C#的Windows窗体程序为例。
    在我程序中,开始用debug模式生成项目的可执行文件,而要读写的XML文件保存在和bin\debug\目录下,程序中用
doc.Load("SourceFile.xml");    获得XmlDocument对象doc,然后是对这个doc对象进行相应编辑操作,当编辑完成后,用doc.Save("SourceFile.xml");保存xml文件,这一切任何问题都没有,下次再启动生成的可执行文件并加载xml文件时,可以看到xml文件已经是被更新的了。
    然后再用release模式生成可执行文件,其余操作和debug模式下完全相同,同样还是doc.Load("SourceFile.xml");  doc.Save("SourceFile.xml");两个语句,结果却大相径庭,第二次启动可执行程序并加载xml文件时,SourceFile.xml并没有发生任何变化,而且在我的桌面上也就是“C:\Documents and Settings\HaoXiangShan\桌面”目录下生成了一个临时文件,这个文件保存的才是用户的更改结果。
    经过一番搜索和琢磨,感觉应该是文件的相对路径写法不对,或者说从一个方面也反应了release和debug的一个区别(没搞清楚原理,嘿嘿),在文章http://hi.baidu.com/dj2487/blog/item/41d50a9517e0ca0b7af48016.html中看到相对路径的写法,拿来试一下,

doc.Load("SourceFile.xml"); 

 doc.Save("SourceFile.xml");

改成

doc.Load(AppDomain.CurrentDomain.BaseDirectory+"SourceFile.xml"); 

doc.Save(AppDomain.CurrentDomain.BaseDirectory+"SourceFile.xml");  

 结果问题就解决了,在debug和release下得到的结果完全一致。

转载于:https://www.cnblogs.com/280850911/archive/2011/10/20/2219603.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值