String.replace删除反斜杠

nic*_*wdy 2 c# asp.net replace

我有一个问题,我确信它很简单,但它在我的代码中不起作用.我正在创建一个日志文件,我想将日期连接到文件名,以便他们知道何时生成日志.我的string.replace没有从我已转换为字符串的日期中删除"\".

见下面的代码:

        string DateNow = Convert.ToString(System.DateTime.Now);
        DateNow = DateNow.Substring(0, 10);
        DateNow.Replace(@"\\", "-");

        string FileName = "log" + DateNow + ".txt";

        // Write values to textfile and save to Log folder
        using (StreamWriter sw = new StreamWriter(HttpContext.Current.Server.MapPath("~/Log" + FileName))) 
        {
            sw.WriteLine(System.DateTime.Now);
            sw.WriteLine("New user created");
            sw.WriteLine("Username is: " + username);
            sw.WriteLine("Password is: " + password);
            sw.WriteLine("Company is: " + company);
            sw.WriteLine("Email is: " + email);
            sw.Dispose();
            sw.Close(); 
        }
Run Code Online (Sandbox Code Playgroud)

这将引发异常,因为Windows中的文件名不能包含\ character.任何想法为什么替换方法不起作用?

谢谢.

Jon*_*Jon 7

它正在工作,但你没有存储结果.它需要阅读

DateNow = DateNow.Replace(@"\", "-");
Run Code Online (Sandbox Code Playgroud)

但这只是一个糟糕解决方案的补丁.为什么不首先以正确的方式做到这一点?使用DateTime.ToString自定义格式字符串代替.例如:

string DateNow = System.DateTime.Now.ToString("yyyy-MM-dd"); // or any other format
Run Code Online (Sandbox Code Playgroud)