-2

多数の画像を保存しようとしていますが、DateTime を使用して、明確で識別可能なファイル名を付けたいと考えています。したがって、正しいパスで文字列を作成し、日時を追加して、スペース、ドット、コロンを削除します。

        String imagePath = "D:\\Patienten\\" + username;
        imagePath += "\\"+DateTime.Now.ToString();
        Console.WriteLine("WithFilename: " + imagePath);
        imagePath.Replace(" ", "");
        Console.WriteLine("Without \" \" : " + imagePath);
        imagePath.Replace(".", "");
        Console.WriteLine("Without \".\": " + imagePath);
        imagePath.Replace(":", "");
        Console.WriteLine("Output format: " + imagePath);
        imagePath += ".png";
        image.Save(imagePath);

コンソール出力によると、文字列はまったく変化しません。Console.Writeline からのすべての出力文字列が同一であることを意味します。違いが生じる場合に備えて、Visual Studio Express 2010 で c# を使用しています。誰でもここでエラーを見つけることができますか?

前もって感謝します!

4

4 に答える 4

15

文字列は不変です。変更された文字列は、関数から返される新しい文字列になります。

例えば

imagePath = imagePath.Replace(" ", "");

文字列が不変である理由

于 2013-09-09T14:17:34.417 に答える
1

以下を使用する必要があります。

imagePath = imagePath.Replace(" ", ""); You should assign returned value
于 2013-09-09T14:18:10.130 に答える
1

ドキュメントから(強調鉱山):

現在のインスタンス内の指定された文字列のすべての出現箇所が別の指定された文字列に置き換えられた新しい文字列を返します。

そのように動作するはずです。使用する

imagePath = imagePath.Replace(" ", "");

代わりは。

于 2013-09-09T14:18:50.633 に答える