何年にもわたって、また最近も、"\\" で文字列を結合する代わりに、Path.Combine を使用する必要があるという議論を耳にしました。次に例を示します。
string myFilePath = Path.Combine("c:", "myDoc.txt");
// vs.
string myFilePath = "C:" + "\\myDoc.txt";
以前のバージョンが後者よりも優れていることを理解できていないので、誰かが説明してくれることを期待していました。
でパスを作成するPath.Combine
と、読みやすくなり、エラーが発生しにくくなります。\\
ディレクトリ区切り文字 (UNIX ではor\
または/
...)、またはパスの最初の部分が で終わる\
かどうか、およびパスの 2 番目の部分が で始まるかどうかについて考える必要はありません\
。
重要な部分であるディレクトリとファイル名に集中できます。String.Format
これは、文字列連結と同じ利点です。
最初のディレクトリがわからない場合 (たとえば、ユーザー入力によるものなど)、末尾のスラッシュの問題は解決する可能C:\Directory
性がC:\Directory\
あります。Path.Combine
ただし、次の引数の先頭にスラッシュがある癖があります。
2 つ目は、通常、ほとんどのアプリケーションでは問題にはなりPath.Combine
ませんが、プラットフォームのディレクトリ セパレータをハードコーディングしていないことです。Windows 以外のオペレーティング システムに展開できるアプリケーションの場合、これは便利です。
/
他のプラットフォームでは、別の Separator を使用できます。たとえば、\
使用しない理由は\\
SO に依存しないためです。
この場合、それはあまり重要ではありませんが、次のように書いてみませんか?
string myFilePath = "C:\\myDoc.txt";
Path.Combine() メソッドは、パス変数を操作していて、バックスラッシュ (プラットフォームによっては必要なスラッシュ) をチェックしたくない場合に便利です。
string myFilePath = Path.Combine(path, filename);