この記事は以下の記事の追記です。
Pathの連結 http://blogs.users.gr.jp/naka/archive/2004/05/13/2602.aspx
昨日の記事ではなぜPath.Combineを使うべきかについて述べていなかったので、述べることにします。
問題点とは"\"を固定的に指定していることです。
ご存知のようにUnix系OSの場合には"/usr/local/bin"などと、ディレクトリ区切りは"/"が利用されています。
同様にMacintoshは":"です。(確か)
Mono Project http://www.go-mono.org/
のソースを確認しましたがやっぱり"/"が指定されているようです。
ということで2番目のPath.DirectorySeparatorCharを使う用法が出てきます。
ただこれにも問題があり、c:\App1" + @"\data\user.xml";のよくないところはベースのディレクトリ名が"c:\App1"であることを暗黙に期待していることです。"c:\App1\"も立派なディレクトリ名の指定です。
結局のところ、文字列を連結する再に、元の文字列の一番後ろの文字がPath.DirectorySeparatorCharかどうか判定して、そうでなければPath.DirectorySeparatorCharを追加して、文字列を返しているだけだと思いますが、こういった細かいところで互換性を確保していきたいですね。(動かないだろうけど)