下面代码是我现在用的,读取的路径是F:\InfoGuard\Gui\bin\Debug\DBConfig.ini,换了盘符也能读取使用,但是每回改配置文件时要进入的文件夹太多,现在我想将DBConfig.ini文件放在F:\InfoGuard\Config\DBConfig.ini,而且换盘符也能自动读取,不知是否可行,请大侠们帮帮忙吧,不胜感激public QueryStatistic()
{
  string strAppPath = Application.StartupPath;  //获得可执行文件的路径。
  string strConfigPath = strAppPath + "\\DBConfig.ini";   FileStream fs = new FileStream(strConfigPath,FileMode.Open, FileAccess.Read);
  StreamReader sr = new StreamReader(fs);

  try
  {
    strCon = sr.ReadToEnd(); //读取配置文件到strCon变量
  }
  catch
  {
    MessageBox.Show("无法读取文件!");
  }
  finally
  {
   sr.Close();
   fs.Close();
  }
         
}

解决方案 »

  1.   

    用单步调试,看strAppPath,和strConfigPath的变化趋势,不就知道符不符合你的要求了,不行再改三。
      

  2.   

    不行啊,string strAppPath = Application.StartupPath直接寻找 F:\InfoGuard\Gui\bin\Debug这个路径,将DBConfig.ini移动后,程序就报错
      

  3.   

    关于这个问题我也碰见过,不过我还是建议你按照你现在的做法来做,即F:\InfoGuard\Gui\bin\Debug\DBConfig.ini.当你打包后,你不用再调整配置文件的位置,否则你还是要重新调整配置文件的位置.
      

  4.   

    火鸟兄,偶不是很懂,希望你不要见意。我这样问吧:如果打包生成setup.exe后,客户在执行安装后,那些执行安装后的程序例如在D:\myInfoGuard下,客户要更改配置文件DBConfig.ini,那么此时DBConfig.ini这个文件会在哪呀?(我不知道打包安装后DBConfig.ini会在哪里,是否方便客户修改)
      

  5.   

    将你的应用程序EXE 与 配置文件放在同一目录然后用Application.StartupPath 去访问。应该可以!