2

質問がありますが、それは簡単だと思いますが、私のコードでは機能しません。ログ ファイルを作成していますが、日付をファイル名に連結して、ログがいつ生成されたかがわかるようにしたいと考えています。私の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(); 
        }

Windows のファイル名には \ 文字を含めることができないため、これは例外をスローします。replace メソッドが機能しない理由はありますか?

ありがとう。

4

4 に答える 4

2

@ 記号を使用してバックスラッシュを既にエスケープしているため、replace 関数は "\" ではなく "\\" を検索します。コードを機能させるには、次のように変更します。

DateNow = DateNow.Replace(@"\", "-");
于 2012-09-27T11:46:14.777 に答える
0

何もすることsplitconvert ToString()

string DateNow = System.DateTime.Now.ToString("yyyy-MM-dd");

yyyy-MM-ddあなたも書くように言いましたyyyy/MM/dd

日付形式の詳細については、このリンクを確認してください日付形式

于 2012-09-27T11:53:04.573 に答える
0

直接System.DateTime.Now.Date.ToString('MM-dd-yyyy');

または DateTime日時付きの日付

string newDate = DateTime.Now.ToString().Replace('/','-');

または Dateのみ

string newDate = DateTime.Now.Date.ToString().Replace('/','-');

アウトプット

2012 年 9 月 27 日午後 5 時 20 分 12 秒

于 2012-09-27T11:51:30.143 に答える