2017-02-09 17 views
-1

StreamWriterに問題があります。私はVisual Studion 2010と2015、.NET Framework 4.0を使用しています。何らかの理由でc#StreamWriterの入力文字列がファイルの出力文字列で同じではありません

using (StreamWriter swErr = new StreamWriter(HostingEnvironment.MapPath("~/Logs/") + 
      DateTime.Now.ToString("yyyyMMdd") + ".log", true, Encoding.Default)) 
{ 
    if (!string.IsNullOrEmpty(errMsg)) 
     swErr.WriteLine(DateTime.Now.ToString("HH:mm:ss " + errMsg)); 
    if (result != null && result.Count > 0) 
     foreach (Mandrill.EmailResult x in result) 
     { 
      stat = string.Format("{0} | {1} | {2} | {3}", 
         x.Id, x.Email, x.Status, x.RejectReason ?? "-" 
      ); 
      Console.WriteLine(stat); 
      swErr.WriteLine(DateTime.Now.ToString("HH:mm:ss " + stat)); 
     } 
    if (!string.IsNullOrEmpty(errMsg) || (result != null && result.Count > 0)) 
     swErr.WriteLine("---"); 
} 

、ここでは、このコードの実際の出力対期待サンプルは次のとおりです:ここでは、ログ・ファイルを書き込むための私のコードのサンプルがある

Expected OUTPUT: 

10:10:02 e7424f10d1ee431fb69d9014265b278a | [email protected] | Sent 

---------- 



ACTUAL OUTPUT 

10:10:02 e742431091ee4313b6999014265b278a | [email protected] | SenA 

---------- 

私にはわからないいくつかの理由についていくつかの文字を乱数や文字に変換します。 StreamWriter for Encodingのパラメータを削除しようとしましたが、とEncoding.UTF8も渡してみましたが、それでも同じです。

私は私の構文はOKだと思うし、適切StreamWriterの処分を取り扱います。

私は誰でもこの点について助けてくれることを願っています。

ありがとうございます!

+0

入力に特殊文字がありますか? – A3006

+0

もう1つFile.WriteAllText()を使用しようとすると、出力は何ですか? – A3006

+0

私は特殊文字を持っていません。また、streamWriter上のパスにロードされたファイルは存在しないか、存在しません。あなたの提案を使って何が起こるかを見てみましょう。 –

答えて

0

この質問に遭遇する人のために。私の愚かさには本当に申し訳ありませんが、これは構文エラーです。エラーメッセージは、日付の文字列フォーマットに含まれています。

DateTime.Now.ToString("HH:mm:ss" + errMsg); 

これがなければなりません:

DateTime.Now.ToString("HH:mm:ss") + errMsg; 


他の人がこれを遭遇しないでしょう願っています。

関連する問題