尝试查找和替换文本时遇到问题

时间:2019-08-29 09:29:32

标签: c# asp.net-mvc asp.net-core

我正在尝试创建一个应用程序,用逗号替换某些数据中的空格并返回更新的文件,但是到目前为止,我创建的代码似乎没有太大的作用,有人可以指出我要去错了吗?

  public IActionResult FormatFile()
    {
        var webroot = _env.WebRootPath;
        var filepath = TempData["filepath"].ToString();
        string[] reader = System.IO.File.ReadAllLines(Path.Combine(webroot, filepath));
        foreach (var line in reader)
        {
            if(line.Contains("  "))
            {
                line.Replace("  ", ",");
                System.IO.File.WriteAllLines(filepath, reader);
            }
        }


        return Content(System.IO.File.ReadAllText(filepath));
    }

预先感谢

1 个答案:

答案 0 :(得分:1)

有两个错误。首先Replace不会对对象进行任何更改,它将返回更新的对象。因此,您需要编写line = line.Replace(" ", ",");

您正在编写reader对象而不是line对象。应该像System.IO.File.WriteAllLines(filepath, line.Replace(" ", ","));

完整的代码如下所示。

public IActionResult FormatFile()
{
    var webroot = _env.WebRootPath;
    var filepath = TempData["filepath"].ToString();
    string[] reader = System.IO.File.ReadAllLines(Path.Combine(webroot, filepath));
    foreach (var line in reader)
    {
        System.IO.File.WriteAllLines(filepath, line.Replace(" ", ","));
    }

    return Content(System.IO.File.ReadAllText(filepath));
}