2017-12-23 90 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 name = System.DateTime.Now.ToString("yyyyMMdd") + ".txt" 
+0

あなたは正しかった、私はdatetime.now.dateが私に日付部分を与えると仮定していた。ストリームライターに追加するとファイルを作成したり追加したりするだけだと思っていましたが、ちょうど私に教えてくれると思っていました パスの一部を見つけることができませんでした 'D:\ Logs \ 22-00-2017.txt – Unknown17

0

私はこれらの2行置き換えます:あなたは、日付部分の書式文字列( "YYYY"、 "MM"、 "DD")を並べ替えることができ var date = DateTime.Now.Date.ToString("yyyy-MM-dd");

:で... var date = DateTime.Now.Date.ToString(); string name = (date).Replace('/' , '-'); を。ファイル/フォルダがきれいに整理されているため、年月日として注文するのが一般的です。

関連する問題