想检查 IF File.Exists 来定义 StreamReader,然后搜索特定的行
Posted
技术标签:
【中文标题】想检查 IF File.Exists 来定义 StreamReader,然后搜索特定的行【英文标题】:Want to check IF File.Exists to define StreamReader, to then searching for specific line 【发布时间】:2021-06-10 19:56:12 【问题描述】:我不经常写代码,我的知识水平还很低。我想不通的事情需要帮助
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, "Read Log", "[Success] Script End String has been found");
Report.Log(ReportLevel.Info, "Read Log", string.Format("Line number: '0'", counter));
return;
counter++;
Report.Log(ReportLevel.Failure, "Read Log", "[Missing] Anvil Script End String NOT found");
file.Close();
起初,while 在这两个语句中并且运行良好,但我想在该语句之外使用 While,但我得到 The name 'file' does not exist in the current context (CS0103) 和我不知道如何从我的 If 语句中获取 file 的值。
【问题讨论】:
【参考方案1】:您需要将变量移出 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"]);
这样你肯定在文件中有一个价值。编码愉快。
【讨论】:
非常感谢,它成功了。我以为我试过了,但我想我保留了 StreamReader file = new StreamReader(ConfigController.Home + TestSuite.Current.Parameters["LogPath"]);在声明中,这就是它失败的原因。 @PascalD。伟大的。请考虑接受答案。以上是关于想检查 IF File.Exists 来定义 StreamReader,然后搜索特定的行的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 If Not File.Exists 覆盖现有的 XML 文件
iPhone System.IO.File.Exists() 不工作