ディレクトリ名とファイル名、親ディレクトリと子ディレクトリなど、個別の部分(断片)からなるパスを結合して一つのパスにするにはCombineメソッドを使います。
Combineメソッドでは、絶対パスと相対パスとの結合や、相対パス同士の結合を行うことができます。 引数に指定されたパスは実行環境のディレクトリ区切り文字にしたがって解釈され、結合時には必要に応じて区切り文字が自動的に補われます。 特に非Windows環境での\
は、区切りではなくディレクトリ名・ファイル名の一部として解釈された上で結合される点に注意が必要です。 また、パス内に含まれる".
"や"..
"は、正規化されずそのまま結合されます。 (パスの正規化を行うにはGetFullPathメソッドを使用します)
このメソッドでは、2つ以上の要素からなる任意個のパスを結合できます。 複数の文字列、あるいは文字列の配列として渡すことができる一方で、(少なくとも.NET 5までの時点では)IEnumerable<String>
を直接渡すことはできないため、ToArrayメソッドで配列に変換する必要があります。
Combineメソッドでは、引数に対してパスとして正しい形式となるような選択が行われます。 具体的には、引数リストにルートディレクトリからのパス(Path.IsPathRootedがtrueとなるパス)が指定されている場合、そのうちの一番最後をルートディレクトリとして選択した上でパスの結合を行います。 それより前のパスは結合に際して用いられず、無視されます。
ルートディレクトリからのパスかどうかの解釈は行わず、単にパス同士を連結させたい場合はPath.Joinメソッドを使用します。