2017-09-26 4 views
0

私はの下の入力を提供している.Net Core 2のテストケースを持っています。 "C:" @C#.netコアのPath.GetDirectoryName

+ Path.DirectorySeparatorCharなぜ

私は私のテストケースにPath.GetDirectoryNameのために主張し、それはWindowsのOS用のnullを返しますが、Linux OS用のC:を返し、? 誰も私がここで何をしているのか説明してもらえますか?

答えて

1

Windowsの場合、C:\はルートディレクトリです。それは名前がありません。

Linuxの場合、C:\もディレクトリです。名前はc:です。相対パスを使用しているので、現在のディレクトリのサブディレクトリです。

Path.DirectorySeparatorCharを正しく使用して、提供されたパスが両方のオペレーティングシステムで動作するが、Linuxには存在しないドライブ指定子(C :)を使用しているという問題があります。

+0

Gotcha、私はそれに応じてテストケースを変更しました。 – Jaydeep