问题描述
我不经常写代码,我的知识水平还很低。我需要帮助解决我无法弄清楚的事情
public static void SearchScriptEnd()
{
int counter = 0;
string line;
Report.Log(ReportLevel.Info,"Read Log","Starting to find: Test Suite Ended");
var text = "Test Suite Ended";
if (File.Exists(ConfigController.Home + TestSuite.Current.Parameters["LogPath"]))
{
StreamReader file =
new StreamReader(ConfigController.Home + TestSuite.Current.Parameters["LogPath"]);
}else{
StreamReader file =
new StreamReader(TestSuite.Current.Parameters["LogPath"]);
}
while ((line = file.ReadLine()) != null)
{
if (line.Contains(text))
{
Report.Log(ReportLevel.Info,"[Success] Script End String has been found");
Report.Log(ReportLevel.Info,string.Format("Line number: '{0}'",counter));
return;
}
counter++;
}
Report.Log(ReportLevel.Failure,"[Missing] Anvil Script End String NOT found");
file.Close();
}
起初,while 在两个语句中都运行良好,但我想在该语句之外使用 While,但我得到名称“文件”在当前上下文中不存在 (CS0103) 和我不知道如何从我的 If 语句中获取文件的值。
解决方法
您需要将变量从 if 范围中取出。试试这个:
StreamReader file;
if (File.Exists(ConfigController.Home + TestSuite.Current.Parameters["LogPath"]))
{
file = new StreamReader(ConfigController.Home + TestSuite.Current.Parameters["LogPath"]);
}else{
file = new StreamReader(TestSuite.Current.Parameters["LogPath"]);
}
那样你肯定在文件中有一个值。快乐编码。