我已经编写了一些代码,它应该为我在一个文件中逐行存储字符串数组中的一些字符串,遗憾的是我必须为一个数组中的大约 200k 个字符串执行此操作,这需要我永远......foreach (var file in fileArray) { // Console.WriteLine(file); string sub = file.Substring(49,file.Length - 49); using (StreamWriter sw = File.AppendText(folder + ".tfcs")) { sw.WriteLine(sub); } indexfiles++; Console.Clear(); Console.WriteLine("Scanning Folder:"); Console.WriteLine(folder); Console.WriteLine("Filesfound:" + fileArray.Length); Console.WriteLine("Fileswritten to Database:" + indexfiles); }}有什么办法可以改善这一点吗?PS我已经获得了已经写入文件的字符串数量的进度......
1 回答
aluckdog
TA贡献1847条经验 获得超7个赞
您在循环的每次迭代中打开和关闭文件。这几乎可以肯定是问题所在,或者至少是部分问题。
取而代之的是,将其打开一次:
using (var writer = File.AppendText(folder + ".tfcs"))
{
foreach (var file in fileArray)
{
writer.WriteLine(file.Substring(49, file.Length - 49));
indexFiles++;
}
}
Console.Clear();
Console.WriteLine("Scanning Folder:");
Console.WriteLine(folder);
Console.WriteLine("Files found:" + fileArray.Length);
Console.WriteLine("Files written to Database:" + indexFiles);
我还将控制台输出移到了最后——在每次迭代中清除控制台并写入它几乎肯定会大大减慢速度。如果你需要一些进度报告,我会每 100 行或类似的东西做一次。
- 1 回答
- 0 关注
- 90 浏览
添加回答
举报
0/150
提交
取消