由于我是C#的新手,我需要一些帮助。
在我的控制台应用程序中,App.config
我添加了一个包含2个路径的密钥(如下所示)。
<appSettings>
<add key="myPath" value="D:\APPS\Sys\ARS\Db, C:\APPS\Sys\ARS\Lg" />
</appSettings>
我想要做的是,创建一个遍历这些路径的方法,搜索D:\...: error.log
和C:\...: 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;
}
答案 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
}