web-dev-qa-db-ja.com

C#のフォルダーパスに/または\\を使用する

C#でファイルパスを書き込むとき、「C:\」や「C:/」などのように記述して、同じパスを取得できることがわかりました。どちらがお勧めですか?単一の/を使用することが、\(エスケープシーケンスとして\を使用する)よりも推奨されると聞いたことがあります。

20
Dominic K

Windowsは両方のパス区切り文字をサポートしているため、少なくともローカルパスに対しては両方が機能します(/はネットワークパスに対しては機能しません)。特に、逐語的文字列リテラルを使用できるため、Windowsで機能しているが標準ではないパス区切り文字(/)を使用しても実際にはメリットはありません。

string path = @"C:\"  //Look ma, no escape

/セパレーターを使用する利点を確認できる唯一のケースは、相対パスのみを操作し、WindowsおよびLinuxでコードを使用する場合です。次に、「../ foo/bar/baz」が同じディレクトリを指すようにすることができます。ただし、この場合でも、System.IO名前空間( Path.DirectorySeparatorCharPath.Combine )のままにして、このような問題に対処することをお勧めします。

29
Vinko Vrsalovic

Path.DirectorySeparatorChar ORより適切に使用してください。Poitaは Path.Combine の使用を推奨しています。

23
SolutionYogi

使用する Path.Combineそして、そのようなセマンティクスについて心配する必要はありません。

8
Peter Alexander

パスをC#で次のように記述します。

@「C:\ My\Path」

@文字は\エスケープをオフにします。

6
Eric J.

これはC#の問題ではなく、Windowsの問題です。 Windowsのパスは通常、円記号(C :)で示されます。私の意見では、C#ではそれを使用する必要があります。 @ "C:\"を使用して、バックスラッシュ文字の特別な処理を防ぎます。

1
John Saunders