ディレクトリとファイルの変数からフルパスを作成する場合
string fullPath = dir + "\\" + fileName;
これはWindows限定なのでだめ。またdirの最後が有効な区切り文字で終了しているとアウト。
string fullPath = dir + Path.DirectorySeparatorChar + fileName;
これでプラットフォーム固有になることはなし。だけどこれもdirの最後が有効な区切り文字で終了しているとアウト。
string fullPath = Path.Combine(dir, fileName);
これでdir変数の最後に有効な区切り文字がついていてもいなくても 大丈夫。ってことを知りました。これは開発者にやさしい。ユーティリティつくったり、設定の規約を決めてもらっていたのがあほらしい。
.NETやってるときはコアライブラリを使って解決することが多くなりました。 .netフレームワークのコンポーネント使うから当たり前っていえば当たり前ですけど。
外部ライブラリとのバランスは大事ってことです。 よくよく考えたら今までの仕事でやってたJavaもコアライブラリばっかりでした(笑)