5

何年にもわたって、また最近も、"\\" で文字列を結合する代わりに、Path.Combine を使用する必要があるという議論を耳にしました。次に例を示します。

string myFilePath = Path.Combine("c:", "myDoc.txt");  
// vs.  
string myFilePath = "C:" + "\\myDoc.txt";

以前のバージョンが後者よりも優れていることを理解できていないので、誰かが説明してくれることを期待していました。

4

4 に答える 4

16

でパスを作成するPath.Combineと、読みやすくなり、エラーが発生しにくくなります。\\ディレクトリ区切り文字 (UNIX ではor\または/...)、またはパスの最初の部分が で終わる\かどうか、およびパスの 2 番目の部分が で始まるかどうかについて考える必要はありません\

重要な部分であるディレクトリとファイル名に集中できます。String.Formatこれは、文字列連結と同じ利点です。

于 2013-11-08T13:14:49.937 に答える
9

最初のディレクトリがわからない場合 (たとえば、ユーザー入力によるものなど)、末尾のスラッシュの問題は解決する可能C:\Directory性がC:\Directory\あります。Path.Combineただし、次の引数の先頭にスラッシュがある癖があります。

2 つ目は、通常、ほとんどのアプリケーションでは問題にはなりPath.Combineませんが、プラットフォームのディレクトリ セパレータをハードコーディングしていないことです。Windows 以外のオペレーティング システムに展開できるアプリケーションの場合、これは便利です。

于 2013-11-08T13:14:59.373 に答える
4

/他のプラットフォームでは、別の Separator を使用できます。たとえば、\使用しない理由は\\SO に依存しないためです。

于 2013-11-08T13:13:38.027 に答える
3

この場合、それはあまり重要ではありませんが、次のように書いてみませんか?

string myFilePath = "C:\\myDoc.txt";

Path.Combine() メソッドは、パス変数を操作していて、バックスラッシュ (プラットフォームによっては必要なスラッシュ) をチェックしたくない場合に便利です。

string myFilePath = Path.Combine(path, filename);  
于 2013-11-08T13:13:51.440 に答える