如何检查其中一行是否已经存在于文本文件中?
本文关键字:于文本 存在 文件 文本 检查 何检查 一行 是否 | 更新日期: 2023-09-27 17:52:38
string filename = "";
private void openToolStripMenuItem1_Click(object sender, EventArgs e)
{
OpenFileDialog theDialog = new OpenFileDialog();
theDialog.Title = "Open Text File";
theDialog.Filter = "TXT files|*.txt";
theDialog.InitialDirectory = @"C:'";
if (theDialog.ShowDialog() == DialogResult.OK)
{
lines = File.ReadAllLines(RecentFiles);
filename = theDialog.FileName;
for (int i = 0; i < lines.Length; i++)
{
recentfiles = new StreamWriter(RecentFiles, true);
recentfiles.WriteLine(theDialog.FileName);
recentfiles.Close();
items = File
.ReadLines(RecentFiles)
.Select(line => new ToolStripMenuItem()
{
Text = line
})
.ToArray();
recentFilesToolStripMenuItem.DropDownItems.AddRange(items);
}
TextFileContentToRichtextbox(filename);
}
}
我不确定在行上做for循环是否正确。但是我想做的是,当我打开一个新的文本文件来检查它是否已经存在于RecentFiles(RecentFiles.txt)
中,如果它确实存在,就不要再写了。
遍历行,如果遍历所有行后变量filename不存在,则将其写入文本文件,并更新项
Linq是完美的:
// if there are not any lines that equal the filename
if (!lines.Any(line => line.Equals(filename)))
{
// then write it into recent files text file
}
////下面的代码只在一行有1个带有扩展名的fileName或任何文本时才会起作用。
if (lines.Contains(filename, StringComparer.OrdinalIgnoreCase))
{
//// lines contains
}
else
{
////lines doesnot contain file name
}
验证它是否完全满足您的要求