2017-12-23 13 views
0

나는 로깅 시스템이 날짜가 실제 날짜 인 date.txt에 기록되는 곳에서 작업하려고했습니다. 여기에 내가주어진 경로 형식이 지원되지 않습니다. C# discord bot

public void LogMessageToFile(string msg) 
    { 
     var date = DateTime.Now.Date.ToString("yyyy-MM-dd"); 
     string LogLine = System.String.Format(msg); 
     string path = Path.Combine(date, ".txt"); 
      using (StreamWriter writer = File.AppendText(@"D:\Logs\" + path)) 
      { 
       writer.WriteLineAsync(LogLine); 
       writer.Close(); 
      } 
    } 

이 무엇을하고 봇 경로 'D : \ 로그 \ 2017-12-22.txt'의 일부를 찾을 수 없습니다 말했다.

+0

새 코드가 편집 됨 – Unknown17

답변

1

코드 DateTime.Now.Date.ToString()은 "12/23/2017 12:00:00 AM"과 같은 문자열을 반환합니다. 당신은 슬래시를 대체하고 있습니다. 그러나 콜론은 그대로 남아 있으며, 허용되지 않습니다.

날짜에서 파일 이름을 만들려는 경우 구분 기호없이 정렬 가능한 날짜 형식을 사용하는 것이 좋습니다. 와 ... var date = DateTime.Now.Date.ToString(); string name = (date).Replace('/' , '-'); :

var name = System.DateTime.Now.ToString("yyyyMMdd") + ".txt" 
+0

당신이 옳았다면, 나는 datetime.now.date가 날짜 부분을 줄 것이라고 가정하고있었습니다. 나는 또한 streamwriter에 사실을 추가하면 파일을 만들거나 파일에 추가 할 것이라고 생각했지만 그냥 알려주는 것 같아요. 'D : \ Logs \ 22-00-2017.txt'경로의 일부를 찾을 수 없습니다. – Unknown17

0

나는이 2 개 라인을 대체 할 것이다 당신은 문자열을 포맷 날짜 부분의 순서를 변경할 수 있습니다 var date = DateTime.Now.Date.ToString("yyyy-MM-dd");

("YYYY"를, "MM", "DD") . 파일/폴더가 잘 정렬되어 작업하기 쉽기 때문에 연말 달에 주문하는 것이 일반적입니다.