c# - 检查文本文件中是否存在文本
问题描述
我试图弄清楚我从当前 URL 获得的文本 URL 是否存在于“linkx.txt”中,如果确实存在则显示一条消息,如果不存在则写入文本文件。但是,当我运行此代码时,程序会在识别文本存在之前两次写入文本文件。
[工作代码]
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
string linkx = @"Desktop\linkx.txt";
string url = "";
if (keyData == Keys.F1) { Application.Exit(); return true; }
else if (keyData == Keys.F2) { url = webBrowser1.Url.AbsoluteUri; return true; }
using (StreamReader sr = File.OpenText(linkx))
{
string texxt = url;
string[] lines = File.ReadAllLines(linkx);
bool matched = false;
for (int x = 0; x < lines.Length; x++)
{
if (texxt == lines[x])
{
sr.Close();
MessageBox.Show("there is a match");
matched = true;
}
}
if (!matched)
{
sr.Close();
using (StreamWriter wriite = File.AppendText(linkx))
{
wriite.WriteLine(url);
MessageBox.Show("url copied!");
return true; // indicate that you handled this keystroke
}
}
}
// Call the base class
return base.ProcessCmdKey(ref msg, keyData);
}
解决方案
它比你所拥有的要简单得多。如果您刚刚有一个字符串数组,则可以使用Array.Contains。
var lines = File.ReadAllLines("links.txt");
if (!lines.Contains("google.com")) {
File.AppendAllText("links.txt", "google.com");
}
推荐阅读
- javascript - JavaScript 代码似乎跳过了对另一个函数的回调
- c# - 获取原始日期时间偏移量
- python - 如何在 Python 中压缩和加密文本流
- powerbi - DAX 自定义总计未按预期运行
- javascript - 在 Angular 中确定特定区域是否折叠
- javascript - 使用 jQuery 追加时重复输入
- windows - 制作可启动的 USB 程序安装程序
- laravel-5.5 - Laravel og:图像不起作用
- asp.net-mvc - 如何在 Rider IDE 中进行 ASP.NET MVC 视图脚手架?
- swift - 如何使用 AVFoundation 制作视频填充帧