Path.Join メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーロード
Join(String, String, String, String) |
4 つのパスを 1 つのパスに連結します。 |
Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>) |
4 つのパス コンポーネントを 1 つのパスに連結します。 |
Join(String, String, String) |
3 つのパスを 1 つのパスに連結します。 |
Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>) |
3 つのパス コンポーネントを 1 つのパスに連結します。 |
Join(ReadOnlySpan<String>) |
パスのスパンを 1 つのパスに連結します。 |
Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>) |
2 つのパス コンポーネントを 1 つのパスに連結します。 |
Join(String[]) |
パスの配列を 1 つのパスに連結します。 |
Join(String, String) |
2 つのパスを 1 つのパスに連結します。 |
Join(String, String, String, String)
- ソース:
- Path.cs
- ソース:
- Path.cs
- ソース:
- Path.cs
4 つのパスを 1 つのパスに連結します。
public:
static System::String ^ Join(System::String ^ path1, System::String ^ path2, System::String ^ path3, System::String ^ path4);
public static string Join (string? path1, string? path2, string? path3, string? path4);
static member Join : string * string * string * string -> string
Public Shared Function Join (path1 As String, path2 As String, path3 As String, path4 As String) As String
パラメーター
- path1
- String
結合する最初のパス。
- path2
- String
結合する 2 番目のパス。
- path3
- String
結合する 3 番目のパス。
- path4
- String
結合する 4 番目のパス。
戻り値
連結されたパス。
注釈
このメソッドは、path
、path2
、path3
、path4
を連結し、パス コンポーネントの間にディレクトリ区切り文字を追加するだけです (まだ存在しない場合)。
path1
、path2
、path3
、または path4
のいずれかの引数の長さが 0 の場合、メソッドは残りの引数を連結します。 結果として得られる連結文字列の長さが 0 の場合、メソッドは String.Emptyを返します。
path1
、path2
、または path3
がターゲット プラットフォームに適さないパス区切り文字で終わる場合、Join
メソッドは元のパス区切り文字を保持し、サポートされている文字を追加します。 この問題は、Unix ベースのシステムではパス区切り文字として認識されない Windows 円記号 ("\") 文字を使用するハードコーディングされたパスで発生します。 この問題を回避するには、次の操作を行います。
ディレクトリ区切り文字をハードコーディングするのではなく、Path.DirectorySeparatorChar プロパティの値を取得します。
ディレクトリ区切り文字としてスラッシュ ("/") を使用します。 この文字は、Unix ベースのシステムの Path.DirectorySeparatorChar プロパティと、Windows システムの Path.AltDirectorySeparatorChar プロパティによって返されます。
Combine メソッドとは異なり、Join メソッドは、返されたパスをルート化しようとしません。 (つまり、path2
または path3
または path4
が絶対パスである場合、Join
メソッドは、Combine メソッドと同様に、前のパスを破棄しません)。
検索ワイルドカード文字にこれらの文字を使用できるため、ディレクトリ名とファイル名のすべての無効な文字が Join
メソッドで許容できないと解釈されるわけではありません。 たとえば、ファイルの作成時に Path.Join("c:\\", "temp", "*.txt")
が無効な場合は、検索文字列として有効です。 そのため、Join
メソッドは正常に解釈します。
適用対象
Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>)
- ソース:
- Path.cs
- ソース:
- Path.cs
- ソース:
- Path.cs
4 つのパス コンポーネントを 1 つのパスに連結します。
public:
static System::String ^ Join(ReadOnlySpan<char> path1, ReadOnlySpan<char> path2, ReadOnlySpan<char> path3, ReadOnlySpan<char> path4);
public static string Join (ReadOnlySpan<char> path1, ReadOnlySpan<char> path2, ReadOnlySpan<char> path3, ReadOnlySpan<char> path4);
static member Join : ReadOnlySpan<char> * ReadOnlySpan<char> * ReadOnlySpan<char> * ReadOnlySpan<char> -> string
Public Shared Function Join (path1 As ReadOnlySpan(Of Char), path2 As ReadOnlySpan(Of Char), path3 As ReadOnlySpan(Of Char), path4 As ReadOnlySpan(Of Char)) As String
パラメーター
- path1
- ReadOnlySpan<Char>
結合する最初のパスを含む文字スパン。
- path2
- ReadOnlySpan<Char>
結合する 2 番目のパスを含む文字スパン。
- path3
- ReadOnlySpan<Char>
結合する 3 番目のパスを含む文字スパン。
- path4
- ReadOnlySpan<Char>
結合する 4 番目のパスを含む文字スパン。
戻り値
連結されたパス。
注釈
このメソッドは、path
、path2
、path3
、path4
を連結し、パス コンポーネントの間にディレクトリ区切り文字を追加するだけです (まだ存在しない場合)。
path1
、path2
、path3
、または path4
のいずれかの引数の Length が 0 の場合、メソッドは残りの引数を連結します。 すべてのコンポーネントの ReadOnlySpan<T>.Length が 0 の場合、メソッドは String.Emptyを返します。
path1
、path2
、または path3
がターゲット プラットフォームに適さないパス区切り文字で終わる場合、Join
メソッドは元のパス区切り文字を保持し、サポートされている文字を追加します。 この問題は、Unix ベースのシステムではパス区切り文字として認識されない Windows 円記号 ("\") 文字を使用するハードコーディングされたパスで発生します。 この問題を回避するには、次の操作を行います。
ディレクトリ区切り文字をハードコーディングするのではなく、Path.DirectorySeparatorChar プロパティの値を取得します。
ディレクトリ区切り文字としてスラッシュ ("/") を使用します。 この文字は、Unix ベースのシステムの Path.DirectorySeparatorChar プロパティと、Windows システムの Path.AltDirectorySeparatorChar プロパティによって返されます。
Combine メソッドとは異なり、Join メソッドは、返されたパスをルート化しようとしません。 (つまり、path2
または path3
または path4
が絶対パスである場合、Join
メソッドは、Combine メソッドと同様に、前のパスを破棄しません)。
検索ワイルドカード文字にこれらの文字を使用できるため、ディレクトリ名とファイル名のすべての無効な文字が Join
メソッドで許容できないと解釈されるわけではありません。 たとえば、ファイルの作成時に Path.Join("c:\\", "temp", "*.txt")
が無効な場合は、検索文字列として有効です。 そのため、Join
メソッドは正常に解釈します。
適用対象
Join(String, String, String)
- ソース:
- Path.cs
- ソース:
- Path.cs
- ソース:
- Path.cs
3 つのパスを 1 つのパスに連結します。
public:
static System::String ^ Join(System::String ^ path1, System::String ^ path2, System::String ^ path3);
public static string Join (string? path1, string? path2, string? path3);
static member Join : string * string * string -> string
Public Shared Function Join (path1 As String, path2 As String, path3 As String) As String
パラメーター
- path1
- String
結合する最初のパス。
- path2
- String
結合する 2 番目のパス。
- path3
- String
結合する 3 番目のパス。
戻り値
連結されたパス。
注釈
このメソッドは、path
、path2
、および path3
を連結するだけで、パス コンポーネントの間にディレクトリ区切り文字が追加されます (まだ存在しない場合)。
path1
、path2
、または path3
のいずれかの引数の長さが 0 の場合、メソッドは残りの引数を連結します。 結果として得られる連結文字列の長さが 0 の場合、メソッドは String.Emptyを返します。
path1
または path2
がターゲット プラットフォームに適さないパス区切り文字で終わる場合、Join
メソッドは元のパス区切り文字を保持し、サポートされている文字を追加します。 この問題は、Unix ベースのシステムではパス区切り文字として認識されない Windows 円記号 ("\") 文字を使用するハードコーディングされたパスで発生します。 この問題を回避するには、次の操作を行います。
ディレクトリ区切り文字をハードコーディングするのではなく、Path.DirectorySeparatorChar プロパティの値を取得します。
ディレクトリ区切り文字としてスラッシュ ("/") を使用します。 この文字は、Unix ベースのシステムの Path.DirectorySeparatorChar プロパティと、Windows システムの Path.AltDirectorySeparatorChar プロパティによって返されます。
Combine メソッドとは異なり、Join メソッドは、返されたパスをルート化しようとしません。 (つまり、path2
または path3
が絶対パスの場合、Join
メソッドは、Combine メソッドのように前のパスを破棄しません)。
検索ワイルドカード文字にこれらの文字を使用できるため、ディレクトリ名とファイル名のすべての無効な文字が Join
メソッドで許容できないと解釈されるわけではありません。 たとえば、ファイルの作成時に Path.Join("c:\\", "temp", "*.txt")
が無効な場合は、検索文字列として有効です。 そのため、Join
メソッドは正常に解釈します。
適用対象
Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>)
- ソース:
- Path.cs
- ソース:
- Path.cs
- ソース:
- Path.cs
3 つのパス コンポーネントを 1 つのパスに連結します。
public:
static System::String ^ Join(ReadOnlySpan<char> path1, ReadOnlySpan<char> path2, ReadOnlySpan<char> path3);
public static string Join (ReadOnlySpan<char> path1, ReadOnlySpan<char> path2, ReadOnlySpan<char> path3);
static member Join : ReadOnlySpan<char> * ReadOnlySpan<char> * ReadOnlySpan<char> -> string
Public Shared Function Join (path1 As ReadOnlySpan(Of Char), path2 As ReadOnlySpan(Of Char), path3 As ReadOnlySpan(Of Char)) As String
パラメーター
- path1
- ReadOnlySpan<Char>
結合する最初のパスを含む文字スパン。
- path2
- ReadOnlySpan<Char>
結合する 2 番目のパスを含む文字スパン。
- path3
- ReadOnlySpan<Char>
結合する 3 番目のパスを含む文字スパン。
戻り値
連結されたパス。
例
次の例は、Path.Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>) メソッドと Path.Combine(String, String, String) メソッドによって返されるパスの違いを示しています。 最初の文字列がドライブとルート ディレクトリを含む完全修飾パスで、2 番目の文字列が最初のパスからの相対パスである場合、2 つのメソッドは同じ結果を生成します。
ShowPathInformation
メソッドの 2 番目と 3 番目の呼び出しでは、2 つのメソッドによって返される文字列が分岐します。 2 番目のメソッド呼び出しでは、最初の文字列引数はドライブ、2 つ目はルート化されたディレクトリです。
Join
メソッドは、2 つの文字列を連結し、重複するパス区切り記号を保持します。
GetFullPath メソッドを呼び出すと、重複がなくなります。
Combine
メソッドはドライブを破棄し、現在のドライブのルートディレクトリを返します。 アプリケーションの現在のドライブが C:\ で、ディレクトリ内のファイルにアクセスするために文字列が使用されている場合は、D: ではなく C: にアクセスします。 最後に、ShowPathInformation
の 3 番目の呼び出しの最後の引数はルート化されているため、Join
メソッドは最初の 2 つの引数に追加して意味のないファイル パスを作成しますが、Combine
メソッドは最初の 2 つの文字列を破棄して 3 番目の文字列を返します。 ファイル アクセスにこの文字列を使用すると、アプリケーションが機密性の高いファイルに意図しないアクセス権を与える可能性があります。
using System;
using System.IO;
class Program3
{
static void Main()
{
ShowPathInformation("C:/", "users/user1/documents", "letters");
ShowPathInformation("D:/", "/users/user1/documents", "letters");
ShowPathInformation("D:/", "users/user1/documents", "C:/users/user1/documents/data");
}
private static void ShowPathInformation(string path1, string path2, string path3)
{
Console.WriteLine($"Concatenating '{path1}', '{path2}', and '{path3}'");
Console.WriteLine($" Path.Join: '{Path.Join(path1, path2, path3)}'");
Console.WriteLine($" Path.Combine: '{Path.Combine(path1, path2, path3)}'");
Console.WriteLine($" {Path.GetFullPath(Path.Join(path1, path2, path3))}");
}
}
// The example displays the following output if run on a Windows system:
// Concatenating 'C:/', 'users/user1/documents', and 'letters'
// Path.Join: 'C:/users/user1/documents\letters'
// Path.Combine: 'C:/users/user1/documents\letters'
// C:\users\user1\documents\letters
// Concatenating 'D:/', '/users/user1/documents', and 'letters'
// Path.Join: 'D://users/user1/documents\letters'
// Path.Combine: '/users/user1/documents\letters'
// D:\users\user1\documents\letters
// Concatenating 'D:/', 'users/user1/documents', and 'C:/users/user1/documents/data'
// Path.Join: 'D:/users/user1/documents\C:/users/user1/documents/data'
// Path.Combine: 'C:/users/user1/documents/data'
// D:\users\user1\documents\C:\users\user1\documents\data
Imports System.IO
Module Program
Public Sub Main()
Dim path1 As String = "C:/"
Dim path2 As String = "users/user1/documents"
Dim path3 As String = "letters"
ShowPathInformation(path1, path2, path3)
path1 = "D:/"
path2 = "/users/user1/documents"
path3 = "letters"
ShowPathInformation(path1, path2, path3)
path1 = "D:/"
path2 = "users/user1/documents"
path3 = "C:/users/user1/documents/data"
ShowPathInformation(path1, path2, path3)
End Sub
Private Sub ShowPathInformation(path1 As String, path2 As String, path3 As String)
Dim result = Path.Join(path1.AsSpan(), path2.AsSpan(), path3.AsSpan())
Console.WriteLine($"Concatenating '{path1}, '{path2}', and `{path3}'")
Console.WriteLine($" Path.Join: '{result}'")
Console.WriteLine($" Path.Combine: '{Path.Combine(path1, path2, path3)}'")
End Sub
End Module
' The example displays the following output if run on a Windows system:
' Concatenating 'C:/, 'users/user1/documents', and `letters'
' Path.Join: 'C:/users/user1/documents\letters'
' Path.Combine: 'C:/users/user1/documents\letters'
'
' Concatenating 'D:/, '/users/user1/documents', and `letters'
' Path.Join: 'D:'users/user1/documents\letters'
' Path.Combine: '/users/user1/documents\letters'
'
' Concatenating 'D:/, 'users/user1/documents', and `C:/users/user1/documents/data'
' Path.Join: 'D:/users/user1/documents\C:/users/user1/documents/data'
' Path.Combine: 'C:/users/user1/documents/data'
注釈
このメソッドは、path
、path2
、および path3
を連結するだけで、パス コンポーネントの間にディレクトリ区切り文字が追加されます (まだ存在しない場合)。
path1
、path2
、または path3
のいずれかの引数の Length が 0 の場合、メソッドは残りの引数を連結します。 すべてのコンポーネントの ReadOnlySpan<T>.Length が 0 の場合、メソッドは String.Emptyを返します。
path1
または path2
がターゲット プラットフォームに適さないパス区切り文字で終わる場合、Join
メソッドは元のパス区切り文字を保持し、サポートされている文字を追加します。 この問題は、Unix ベースのシステムではパス区切り文字として認識されない Windows 円記号 ("\") 文字を使用するハードコーディングされたパスで発生します。 この問題を回避するには、次の操作を行います。
ディレクトリ区切り文字をハードコーディングするのではなく、Path.DirectorySeparatorChar プロパティの値を取得します。
ディレクトリ区切り文字としてスラッシュ ("/") を使用します。 この文字は、Unix ベースのシステムの Path.DirectorySeparatorChar プロパティと、Windows システムの Path.AltDirectorySeparatorChar プロパティによって返されます。
Combine メソッドとは異なり、Join メソッドは、返されたパスをルート化しようとしません。 (つまり、path2
または path3
が絶対パスの場合、Join
メソッドは、Combine メソッドのように前のパスを破棄しません)。
検索ワイルドカード文字にこれらの文字を使用できるため、ディレクトリ名とファイル名のすべての無効な文字が Join
メソッドで許容できないと解釈されるわけではありません。 たとえば、ファイルの作成時に Path.Join("c:\\", "temp", "*.txt")
が無効な場合は、検索文字列として有効です。 そのため、Join
メソッドは正常に解釈します。
こちらもご覧ください
適用対象
Join(ReadOnlySpan<String>)
パスのスパンを 1 つのパスに連結します。
public:
static System::String ^ Join(ReadOnlySpan<System::String ^> paths);
public static string Join (scoped ReadOnlySpan<string?> paths);
static member Join : ReadOnlySpan<string> -> string
Public Shared Function Join (paths As ReadOnlySpan(Of String)) As String
パラメーター
- paths
- ReadOnlySpan<String>
パスのスパン。
戻り値
連結されたパス。
適用対象
Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>)
- ソース:
- Path.cs
- ソース:
- Path.cs
- ソース:
- Path.cs
2 つのパス コンポーネントを 1 つのパスに連結します。
public:
static System::String ^ Join(ReadOnlySpan<char> path1, ReadOnlySpan<char> path2);
public static string Join (ReadOnlySpan<char> path1, ReadOnlySpan<char> path2);
static member Join : ReadOnlySpan<char> * ReadOnlySpan<char> -> string
Public Shared Function Join (path1 As ReadOnlySpan(Of Char), path2 As ReadOnlySpan(Of Char)) As String
パラメーター
- path1
- ReadOnlySpan<Char>
結合する最初のパスを含む文字スパン。
- path2
- ReadOnlySpan<Char>
結合する 2 番目のパスを含む文字スパン。
戻り値
結合されたパス。
例
次の例は、Path.Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>) メソッドと Path.Combine(String, String) メソッドによって返されるパスの違いを示しています。 最初の文字列がドライブとルート ディレクトリを含む完全修飾パスで、2 番目の文字列が最初のパスからの相対パスである場合、2 つのメソッドは同じ結果を生成します。
ShowPathInformation
メソッドの 2 番目と 3 番目の呼び出しでは、2 つのメソッドによって返される文字列が分岐します。 2 番目のメソッド呼び出しでは、最初の文字列引数はドライブ、2 つ目はルート化されたディレクトリです。
Join
メソッドは、2 つの文字列を連結し、重複するパス区切り記号を保持します。
Combine
メソッドはドライブを破棄し、現在のドライブのルートディレクトリを返します。 アプリケーションの現在のドライブが C:\ で、ディレクトリ内のファイルにアクセスするために文字列が使用されている場合は、D: ではなく C: にアクセスします。 最後に、ShowPathInformation
の 3 番目の呼び出しの両方の引数がルート化されているため、Join
メソッドはそれらを追加して意味のないファイル パスを作成しますが、Combine
メソッドは最初の文字列を破棄して 2 番目の文字列を返します。 ファイル アクセスにこの文字列を使用すると、アプリケーションが機密性の高いファイルに意図しないアクセス権を与える可能性があります。
using System;
using System.IO;
class Program2
{
static void Main()
{
var path1 = "C:/Program Files/";
var path2 = "Utilities/SystemUtilities";
ShowPathInformation(path1, path2);
path1 = "C:/";
path2 = "/Program Files";
ShowPathInformation(path1, path2);
path1 = "C:/Users/Public/Documents/";
path2 = "C:/Users/User1/Documents/Financial/";
ShowPathInformation(path1, path2);
}
private static void ShowPathInformation(string path1, string path2)
{
var result = Path.Join(path1.AsSpan(), path2.AsSpan());
Console.WriteLine($"Concatenating '{path1}' and '{path2}'");
Console.WriteLine($" Path.Join: '{result}'");
Console.WriteLine($" Path.Combine: '{Path.Combine(path1, path2)}'");
}
}
// The example displays the following output if run on a Windows system:
// Concatenating 'C:/Program Files/' and 'Utilities/SystemUtilities'
// Path.Join: 'C:/Program Files/Utilities/SystemUtilities'
// Path.Combine: 'C:/Program Files/Utilities/SystemUtilities'
//
// Concatenating 'C:/' and '/Program Files'
// Path.Join: 'C://Program Files'
// Path.Combine: '/Program Files'
//
// Concatenating 'C:/Users/Public/Documents/' and 'C:/Users/User1/Documents/Financial/'
// Path.Join: 'C:/Users/Public/Documents/C:/Users/User1/Documents/Financial/'
// Path.Combine: 'C:/Users/User1/Documents/Financial/'
Imports System.IO
Module Example
Public Sub Main()
Dim path1 = "C:/Program Files/"
Dim path2 = "Utilities/SystemUtilities"
ShowPathInformation(path1, path2)
path1 = "C:/"
path2 = "/Program Files"
ShowPathInformation(path1, path2)
path1 = "C:/Users/Public/Documents/"
path2 = "C:/Users/User1/Documents/Financial/"
ShowPathInformation(path1, path2)
End Sub
Private Sub ShowPathInformation(path1 As String, path2 As String)
Dim result = Path.Join(path1.AsSpan(), path2.AsSpan())
Console.WriteLine($"Concatenating '{path1}' and '{path2}'")
Console.WriteLine($" Path.Join: '{result}'")
Console.WriteLine($" Path.Combine: '{Path.Combine(path1, path2)}'")
Console.WriteLine()
End Sub
End Module
' The example displays the following output if run on a Windows system:
' Concatenating 'C:/Program Files/' and 'Utilities/SystemUtilities'
' Path.Join: 'C:/Program Files/Utilities/SystemUtilities'
' Path.Combine: 'C:/Program Files/Utilities/SystemUtilities'
'
' Concatenating 'C:/' and '/Program Files'
' Path.Join: 'C:'Program Files'
' Path.Combine: '/Program Files'
'
' Concatenating 'C:/Users/Public/Documents/' and 'C:/Users/User1/Documents/Financial/'
' Path.Join: 'C:/Users/Public/Documents/C:/Users/User1/Documents/Financial/'
' Path.Combine: 'C:/Users/User1/Documents/Financial/'
注釈
このメソッドは、単に path
と path2
を連結し、2 つのパス コンポーネントの間にディレクトリ区切り文字を追加します (path1
の末尾または path2
の先頭にまだ存在しない場合)。
path1
または path2
のいずれかの Length が 0 の場合、メソッドはもう一方のパスを返します。
path1
と path2
の両方の Length が 0 の場合、メソッドは String.Emptyを返します。
path1
ターゲット プラットフォームに適さないパス区切り文字で終わる場合、Join
メソッドは元のパス区切り文字を保持し、サポートされている文字を追加します。 この問題は、Unix ベースのシステムではパス区切り文字として認識されない Windows 円記号 ("\") 文字を使用するハードコーディングされたパスで発生します。 この問題を回避するには、次の操作を行います。
ディレクトリ区切り文字をハードコーディングするのではなく、Path.DirectorySeparatorChar プロパティの値を取得します。
ディレクトリ区切り文字としてスラッシュ ("/") を使用します。 この文字は、Unix ベースのシステムの Path.DirectorySeparatorChar プロパティと、Windows システムの Path.AltDirectorySeparatorChar プロパティによって返されます。
Combine メソッドとは異なり、Join メソッドは、返されたパスをルート化しようとしません。 (つまり、path2
が絶対パスの場合、Join
メソッドは path1
を破棄せず、Combine メソッドと同様に path2
を返します)。次の例は、2 つのメソッドによって返されるパスの違いを示しています。
path2
のソースがユーザー入力の場合、Combine メソッドを使用すると、アプリケーションがアクセス可能にする予定がなかったファイル システム リソース (例では C:/Users/User1/Documents/Financial/ など) にユーザーがアクセスできるようになります。
検索ワイルドカード文字にこれらの文字を使用できるため、ディレクトリ名とファイル名のすべての無効な文字が Join
メソッドで許容できないと解釈されるわけではありません。 たとえば、ファイルの作成時に Path.Join("c:\\", "*.txt")
が無効な場合は、検索文字列として有効です。 そのため、Join
メソッドは正常に解釈します。
こちらもご覧ください
適用対象
Join(String[])
- ソース:
- Path.cs
- ソース:
- Path.cs
- ソース:
- Path.cs
パスの配列を 1 つのパスに連結します。
public:
static System::String ^ Join(... cli::array <System::String ^> ^ paths);
public static string Join (params string?[] paths);
static member Join : string[] -> string
Public Shared Function Join (ParamArray paths As String()) As String
パラメーター
- paths
- String[]
パスの配列。
戻り値
連結されたパス。
注釈
このメソッドは、paths
内のすべての文字列を連結し、パス コンポーネントの間にディレクトリ区切り文字を追加するだけです (まだ存在しない場合)。
paths
のいずれかのパスの Length が 0 の場合、メソッドは残りの引数を連結します。 結果の連結文字列の長さが 0 の場合、メソッドは String.Emptyを返します。
最後のパスを除き、paths
のいずれかのパスがターゲット プラットフォームに適さないパス区切り文字で終わる場合、Join
メソッドは元のパス区切り文字を保持し、サポートされているパス区切り文字を追加します。 この問題は、Unix ベースのシステムではパス区切り文字として認識されない Windows 円記号 ("\") 文字を使用するハードコーディングされたパスで発生します。 この問題を回避するには、次の操作を行います。
ディレクトリ区切り文字をハードコーディングするのではなく、Path.DirectorySeparatorChar プロパティの値を取得します。
ディレクトリ区切り文字としてスラッシュ ("/") を使用します。 この文字は、Unix ベースのシステムの Path.DirectorySeparatorChar プロパティと、Windows システムの Path.AltDirectorySeparatorChar プロパティによって返されます。
Combine メソッドとは異なり、Join メソッドは、返されたパスをルート化しようとしません。 (つまり、最初のパスを除き、paths
のいずれかのパスが絶対パスである場合、Join
メソッドは、Combine メソッドのように前のパスを破棄しません)。
検索ワイルドカード文字にこれらの文字を使用できるため、ディレクトリ名とファイル名のすべての無効な文字が Join
メソッドで許容できないと解釈されるわけではありません。 たとえば、ファイルの作成時に Path.Join("c:\\", "temp", "*.txt")
が無効な場合は、検索文字列として有効です。 そのため、Join
メソッドは正常に解釈します。
適用対象
Join(String, String)
- ソース:
- Path.cs
- ソース:
- Path.cs
- ソース:
- Path.cs
2 つのパスを 1 つのパスに連結します。
public:
static System::String ^ Join(System::String ^ path1, System::String ^ path2);
public static string Join (string? path1, string? path2);
static member Join : string * string -> string
Public Shared Function Join (path1 As String, path2 As String) As String
パラメーター
- path1
- String
結合する最初のパス。
- path2
- String
結合する 2 番目のパス。
戻り値
連結されたパス。
注釈
このメソッドは、path
と path2
を連結するだけで、パス コンポーネント間にディレクトリ区切り文字が追加されます (まだ存在しない場合)。
path1
または path2
のいずれかの長さが 0 の場合、メソッドは残りの引数を連結します。 結果として得られる連結文字列の長さが 0 の場合、メソッドは String.Emptyを返します。
path1
ターゲット プラットフォームに適さないパス区切り文字で終わる場合、Join
メソッドは元のパス区切り文字を保持し、サポートされている文字を追加します。 この問題は、Unix ベースのシステムではパス区切り文字として認識されない Windows 円記号 ("\") 文字を使用するハードコーディングされたパスで発生します。 この問題を回避するには、次の操作を行います。
ディレクトリ区切り文字をハードコーディングするのではなく、Path.DirectorySeparatorChar プロパティの値を取得します。
ディレクトリ区切り文字としてスラッシュ ("/") を使用します。 この文字は、Unix ベースのシステムの Path.DirectorySeparatorChar プロパティと、Windows システムの Path.AltDirectorySeparatorChar プロパティによって返されます。
Combine メソッドとは異なり、Join メソッドは、返されたパスをルート化しようとしません。 (つまり、path2
が絶対パスの場合、Combine メソッドと同様に、Join
メソッドは前のパスを破棄しません)。
検索ワイルドカード文字にこれらの文字を使用できるため、ディレクトリ名とファイル名のすべての無効な文字が Join
メソッドで許容できないと解釈されるわけではありません。 たとえば、ファイルの作成時に Path.Join("c:\\", "temp", "*.txt")
が無効な場合は、検索文字列として有効です。 そのため、Join
メソッドは正常に解釈します。
適用対象
.NET