如何确定app.config文件是否存在

时间:2011-03-14 10:07:38

标签: c# app-config

有没有办法找出app.config文件是否存在,而不使用“File.Exists”? 我试过了

if ( !ConfigurationManager.ConnectionStrings.ElementInformation.IsPresent )
{...}

但即使带有连接字符串的app.config存在,IsPresent仍为false。

编辑: 我误解了IsPresent财产吗?

3 个答案:

答案 0 :(得分:19)

AppDomain报告它希望应用程序的配置文件驻留的位置。您可以测试文件是否确实存在(不需要虚拟AppSettings,也不需要尝试找出应该调用的配置文件或它所在的位置):

public static bool CheckConfigFileIsPresent()
{
   return File.Exists(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
}

答案 1 :(得分:9)

您可以在静态类中创建方法

public static class ConfigurationManagerHelper
{
    public static bool Exists()
    {
        return Exists(System.Reflection.Assembly.GetEntryAssembly());
    }

    public static bool Exists(Assembly assembly)
    {
        return System.IO.File.Exists(assembly.Location + ".config" )
    }
}

然后使用你想要的地方

ConfigurationManagerHelper.Exists();  // or pass assembly

答案 2 :(得分:4)

我能想到的最简单的方法是添加一些“虚拟”应用程序设置标志,然后检查该标志,例如:

if (string.IsNullOrEmpty(ConfigurationManager.AppSettings["dummyflag"]))
{
  //config file doesn't exist..
}