【发布时间】:2015-06-02 18:03:53
【问题描述】:
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) 中,如果它确实存在就不要再写了。
循环遍历行,如果遍历所有行并且变量文件名不存在,则将其写入文本文件,并更新项目。
【问题讨论】:
-
string.compare 不会完成你的任务吗?
-
您可以使用索引来标记任何行并加快搜索速度!例如,当编写任何行时,获取行哈希码,而不是行索引!其他方式可能是使用数据库而不是文件!