如何使用我的控制台应用程序{app}中的appSettings创建循环

时间:2015-09-21 13:46:00

标签: c# loops app-config

由于我是C#的新手,我需要一些帮助。

在我的控制台应用程序中,App.config我添加了一个包含2个路径的密钥(如下所示)。

<appSettings>
    <add key="myPath" value="D:\APPS\Sys\ARS\Db, C:\APPS\Sys\ARS\Lg" />
</appSettings>

我想要做的是,创建一个遍历这些路径的方法,搜索D:\...: error.logC:\...: errtier0.log是否分别存在以下文件。 最后返回包含文件的完整路径,例如D:\APPS\Sys\ARS\Db\error.log

提前谢谢

到目前为止我做的是, 一开始我创建了两个不同的密钥,每个路径一个,我有两个方法(参见下面的一个),它们在密钥路径中搜索每个文件。

public static string findRemedy()
{
    string myRemedyPath = ConfigurationManager.AppSettings["myRemedyPath"];
    DirectoryInfo remedyPath = new DirectoryInfo(myRemedyPath);
    foreach (var remedy in remedyPath.GetFiles("error.log"))
    {
        return remedy.Name;
    }
    return "";
}

之后,我正在另一种方法中解析该值,我在该方法中添加了路径中文件的名称

public static string findPath()
{        
    string fileRem = findRemedy();
    string Rpath = @"D:\APPS\Sys\ARS\Db\" + fileRem;
    return Rpath;
}

2 个答案:

答案 0 :(得分:0)

将设置读入字符串,将其拆分并尝试在每个路径上打开文件。返回第一个有效的

string appSetting = ConfigurationManager.AppSettings["myPath"];
string[] paths = appSetting.Split[','];
foreach(string path in paths){
   //Check if file exists by appending the file name to end of path 
   //and attempting to open the file
   //If successful return path, if not return null
}

答案 1 :(得分:0)

string myPath = ConfigurationManager.AppSettings["myPath"];

string[] parts = myPath.Split(',');
foreach (string part in parts)
{
   //do what you want
}