簡體   English   中英

字符串中的新行不適用於文本文件

[英]New line in a string is not works with text file

我有一個 function 可以將消息寫入文本文件。 但是當傳遞帶有“Environment.NewLine”的字符串時,它不會將新行寫入文本文件。 相反,它會寫入“\r\n”。 如何糾正這個? 我嘗試過使用“\n”而不是“Environment.NewLine”。 新線路仍然沒有到來。 僅當將帶有新行的字符串傳遞給 function 時才會發生此問題。例如變量“消息”

string message= "First "+Environment.NewLine+" message.";
LogTheDetails(message);

      public static void LogTheDetails(String message)
                {
          string path = AppDomain.CurrentDomain.BaseDirectory + "\\logs";       
          var directory = new DirectoryInfo(path);
             if (directory.Exists == false)
                        {
                            directory.Create();
                        }
        
                        string FilePath = path + "/" +  currentdate + ".txt";
                        if (!File.Exists(FilePath)) //FILE WRITING FIRST TIME
                        {
                            File.Create(FilePath).Dispose();
                            using (TextWriter tw = new StreamWriter(FilePath))
                            {
              tw.WriteLine("============================================================\n --Logs--");
                            }
                        }
                        else if (File.Exists(FilePath))//IF FILE ALREADY EXIST - APPEND LINES
                        {
                            string testString= "testString"+ Environment.NewLine+ "WithNewLine";
        File.AppendAllText(FilePath, "\n============================================================\n");
                            File.AppendAllText(FilePath, message);
                            File.AppendAllText(FilePath, testString);  
        File.AppendAllText(FilePath, "\n============================================================\n");
                        }
        }

Output

============================================================
--Logs--
============================================================
 First \r\n message.
testString
WithNewLine
============================================================

預計 Output:

 ============================================================
    --Logs--
    ============================================================
    First
    message.
    testString
    WithNewLine
    ============================================================

下面一段代碼給出了你要找的 output,我在 .net 5 控制台應用程序中試過了。

using System;
using System.IO;

namespace ConsoleApp4
{
class Program
{
    static string message = "First " + Environment.NewLine + " message.";

    static void Main(string[] args)
    {
        LogTheDetails(message);
        Console.WriteLine("Hello World!");
    }



    public static void LogTheDetails(string message)
    {
        string path = AppDomain.CurrentDomain.BaseDirectory + "\\logs";
        var directory = new DirectoryInfo(path);
        if (directory.Exists == false)
        {
            directory.Create();
        }

        string currentdate = "test";
        string FilePath = path + "/" + currentdate + ".txt";
        if (!File.Exists(FilePath)) //FILE WRITING FIRST TIME
        {
            File.Create(FilePath).Dispose();
            using (TextWriter tw = new StreamWriter(FilePath))
            {
         
tw.WriteLine("========================================================\n 
--Logs--");       
      
            }
        }
        else if (File.Exists(FilePath))//IF FILE ALREADY EXIST - APPEND 
 LINES
        {
            string testString = Environment.NewLine + "testString" + 
Environment.NewLine + "WithNewLine";
            File.AppendAllText(FilePath, 
"\n============================================================\n");
            File.AppendAllText(FilePath, message);
            File.AppendAllText(FilePath, testString);
            File.AppendAllText(FilePath, 
"\n============================================================\n");
        }
    }
}
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM