在读写文件的时候要读取配置文件的Path,为什么呢?

来源:互联网 发布:五笔输入法 for linux 编辑:程序博客网 时间:2024/06/09 01:57

    通常在菜鸟级别的编程中,代码读写时,都是将路径写死在代码里(专业点说成绝对路径,像是@"D:/GMDID_MDM/WebSite/Web.config"),这样写为以后代码管理和项目部署带来很大的麻烦。ex,每次路径修改后都需要编译才能正常运行代码,并且每需要用到该路径时都要重新输入一遍Path。

      改进的办法是使用相对路径,如"~/Web.config",这样就可以在项目整迁移到其他地方的时候依然可以运行代码,但是需要加入AppDomain.CurrentDomain.BaseDirectory类似的方法,才可以找到路径,并且当部署到IIS上之后还会出现找不到路径的错误,因为IIS的执行路径是C:/WINDOWS下,所以找不到Path了,而且当该Path需要修改并且使用N次的时候,必须对应的修改Path N次,麻烦的不得了。

    改进的方法是新建一个Constant类,保存Constant信息,如定义public const string strPath = "D:/GMDID_MDM/WebSite/Web.config"; 这样当需要用到Path的时候只要通过类名找到该Path就行了,如Constant.strPath,修改也只要修改一次strPath就行了,不过这样还是有一个坏处,就是当你需要更改文件Path时,必须重新编译才能部署。

     改进的方法是通过XML或Web.config,在Web.config添加如下              

 <appSettings>
  <add key="strPath" value="D:/GMDID_MDM/WebSite/Web.config"/>
</appSettings>

然后在代码中通过System.Configuration.ConfigurationSettings.AppSettings["strPath"].ToString();读取XML中的Path信息,这样当Project部署之后,需要改变文件的Path只需要修改配置文件即可,不必再次运行编译代码。

    接着改进,在Constant类中定义public const string strPath = System.Configuration.ConfigurationSettings.AppSettings["strPath"].ToString();这样代码就清晰多了。

原创粉丝点击