【问题标题】:Insert character at nth position for each line in a text file在文本文件中的每一行的第 n 个位置插入字符
【发布时间】:2019-04-27 03:13:08
【问题描述】:
【问题讨论】:
标签:
c#
regex
text
.net-core
asp.net-core-2.0
【解决方案1】:
您不需要在这里使用正则表达式。一种简单的方法是使用File.ReadAllLines 读取所有行,然后将字符添加到所需位置,如下代码所示:
var sb = new StringBuilder();
string path = @"E:\test\test.txt"; //input file
string path2 = @"E:\test\test2.txt"; //the output file, could be same as input path to overwrite
string charToInsert = " ";
string[] lines = File.ReadAllLines(path);
foreach (string line in lines)
{
sb.AppendLine(line.Length > 8 ? line.Substring(0, 8) + charToInsert + line.Substring(9) : line);
}
File.WriteAllText(path2, sb.ToString());
这里我使用不同的输出路径进行测试(不要覆盖输入)
编辑:
循环遍历文件夹中所有.txt文件的修改代码:
string path = @"C:\TestFolder";
string charToInsert = " ";
string[] allFiles = Directory.GetFiles(path, "*.txt", SearchOption.TopDirectoryOnly); //Directory.EnumerateFiles
foreach (string file in allFiles)
{
var sb = new StringBuilder();
string[] lines = File.ReadAllLines(file); //input file
foreach (string line in lines)
{
sb.AppendLine(line.Length > 8 ? line.Substring(0, 8) + charToInsert + line.Substring(9) : line);
}
File.WriteAllText(file, sb.ToString()); //overwrite modified content
}