私のC#アプリケーションは、二重引用符で囲まれたフルパスを次のようにファイルに書き込みます。
streamWriter.WriteLine("\"" + Application.ExecutablePath + "\"");
通常は動作しますが、書き込まれたファイルには次のものが含まれます
"D:\Dev\Projects\MyApp\bin\Debug\MyApp.exe"
しかし、アプリケーションの実行可能パスに#が含まれていると、何か奇妙なことが起こります。出力は次のようになります。
"D:\Dev\Projects#/MyApp/bin/Debug/MyApp.exe"
#の後のスラッシュはスラッシュになります。これにより、開発中のシステムで問題が発生します。
なぜこれが起こっているのですか、そして文字列よりもエレガントなそれを防ぐ方法があります。書く前にパスを置き換えますか?