Path.Join 메서드

정의

오버로드

Join(String, String, String, String)

네 경로를 단일 경로에 연결합니다.Concatenates four paths into a single path.

Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>)

네 경로 구성 요소를 단일 경로로 연결합니다.Concatenates four path components into a single path.

Join(String, String, String)

세 개의 경로를 단일 경로에 연결합니다.Concatenates three paths into a single path.

Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>)

두 경로 구성 요소를 단일 경로로 연결합니다.Concatenates two path components into a single path.

Join(String, String)

두 경로를 단일 경로에 연결합니다.Concatenates two paths into a single path.

Join(String[])

경로 배열을 단일 경로로 연결합니다.Concatenates an array of paths into a single path.

Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>)

세 개의 경로 구성 요소를 단일 경로로 연결합니다.Concatenates three path components into a single path.

Join(String, String, String, String)

네 경로를 단일 경로에 연결합니다.Concatenates four paths into a single path.

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

조인할 첫 번째 경로입니다.The first path to join.

path2
String

조인할 두 번째 경로입니다.The second path to join.

path3
String

조인할 세 번째 경로입니다.The third path to join.

path4
String

조인할 네 번째 경로입니다.The fourth path to join.

반환

String

연결된 경로입니다.The concatenated path.

설명

이 메서드는 path , 및를 연결 path2 path3 path4 하 고, 경로 구성 요소 중 하나에 디렉터리 구분 기호 문자를 추가 합니다 (아직 없는 경우).This method simply concatenates path, path2, path3 and path4 and adds a directory separator character between any of the path components if one is not already present. path1, 또는 인수의 길이가 0 인 경우 path2 path3 path4 메서드는 나머지 인수를 연결 합니다.If the length of any of path1, path2, path3 or path4 argument is zero, the method concatenates the remaining arguments. 연결 된 결과 문자열의 길이가 0 인 경우이 메서드는를 반환 합니다 String.Empty .If the length of the resulting concatenated string is zero, the method returns String.Empty.

path1 path2 path3 대상 플랫폼에 적합 하지 않은 경로 구분 문자에서 또는 또는가 끝나는 경우 Join 메서드는 원래 경로 구분 기호 문자를 유지 하 고 지원 되는 문자를 추가 합니다.If path1 or path2 or path3 ends in a path separator character that is not appropriate for the target platform, the Join method preserves the original path separator character and appends the supported one. 이 문제는 \ Unix 기반 시스템에서 경로 구분 기호로 인식 되지 않는 Windows 백슬래시 ("") 문자를 사용 하는 하드 코드 된 경로에서 발생 합니다.This issue arises in hard-coded paths that use the Windows backslash ("\") character, which is not recognized as a path separator on Unix-based systems. 이 문제를 해결 하려면 다음을 수행할 수 있습니다.To work around this issue, you can:

메서드와 달리 Combine Join 메서드는 반환 된 경로의 루트를 시도 하지 않습니다.Unlike the Combine method, the Join method does not attempt to root the returned path. 즉, 또는 path2 path2 또는 path3 가 절대 경로인 경우 메서드는 Join 메서드가 수행 하는 것 처럼 이전 경로를 삭제 하지 않습니다 Combine .(That is, if path2 or path2 or path3 is an absolute path, the Join method does not discard the previous paths as the Combine method does.

Join와일드 카드 문자를 검색 하는 데 이러한 문자를 사용할 수 있으므로 디렉터리 및 파일 이름에 대 한 잘못 된 문자는 메서드에 의해 허용 되지 않는 것으로 해석 되지 않습니다.Not all invalid characters for directory and file names are interpreted as unacceptable by the Join method, because you can use these characters for search wildcard characters. 예를 들어은 Path.Join("c:\\", "temp", "*.txt") 파일을 만들 때 유효 하지 않을 수 있지만 검색 문자열로 유효 합니다.For example, while Path.Join("c:\\", "temp", "*.txt") might be invalid when creating a file, it is valid as a search string. Join따라서 메서드는 성공적으로 해석 합니다.The Join method therefore successfully interprets it.

Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>)

네 경로 구성 요소를 단일 경로로 연결합니다.Concatenates four path components into a single path.

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>

조인할 첫 번째 경로를 포함하는 문자 범위입니다.A character span that contains the first path to join.

path2
ReadOnlySpan<Char>

조인할 두 번째 경로를 포함하는 문자 범위입니다.A character span that contains the second path to join.

path3
ReadOnlySpan<Char>

조인할 세 번째 경로를 포함하는 문자 범위입니다.A character span that contains the third path to join.

path4
ReadOnlySpan<Char>

조인할 네 번째 경로를 포함하는 문자 범위입니다.A character span that contains the fourth path to join.

반환

String

연결된 경로입니다.The concatenated path.

설명

이 메서드는 path , 및를 연결 path2 path3 path4 하 고, 경로 구성 요소 중 하나에 디렉터리 구분 기호 문자를 추가 합니다 (아직 없는 경우).This method simply concatenates path, path2, path3 and path4 and adds a directory separator character between any of the path components if one is not already present. Length path1 , 또는 인수의가 0 인 경우이 path2 path3 path4 메서드는 나머지 인수를 연결 합니다.If the Length of any of path1, path2, path3 or path4 argument is zero, the method concatenates the remaining arguments. ReadOnlySpan<T>.Length모든 구성 요소의가 0 인 경우이 메서드는를 반환 합니다 String.Empty .If the ReadOnlySpan<T>.Length of all components is zero, the method returns String.Empty.

path1 path2 path3 대상 플랫폼에 적합 하지 않은 경로 구분 문자에서 또는 또는가 끝나는 경우 Join 메서드는 원래 경로 구분 기호 문자를 유지 하 고 지원 되는 문자를 추가 합니다.If path1 or path2 or path3 ends in a path separator character that is not appropriate for the target platform, the Join method preserves the original path separator character and appends the supported one. 이 문제는 \ Unix 기반 시스템에서 경로 구분 기호로 인식 되지 않는 Windows 백슬래시 ("") 문자를 사용 하는 하드 코드 된 경로에서 발생 합니다.This issue arises in hard-coded paths that use the Windows backslash ("\") character, which is not recognized as a path separator on Unix-based systems. 이 문제를 해결 하려면 다음을 수행할 수 있습니다.To work around this issue, you can:

메서드와 달리 Combine Join 메서드는 반환 된 경로의 루트를 시도 하지 않습니다.Unlike the Combine method, the Join method does not attempt to root the returned path. 즉, 또는 path2 path2 또는 path3 가 절대 경로인 경우 메서드는 Join 메서드가 수행 하는 것 처럼 이전 경로를 삭제 하지 않습니다 Combine .(That is, if path2 or path2 or path3 is an absolute path, the Join method does not discard the previous paths as the Combine method does.

Join와일드 카드 문자를 검색 하는 데 이러한 문자를 사용할 수 있으므로 디렉터리 및 파일 이름에 대 한 잘못 된 문자는 메서드에 의해 허용 되지 않는 것으로 해석 되지 않습니다.Not all invalid characters for directory and file names are interpreted as unacceptable by the Join method, because you can use these characters for search wildcard characters. 예를 들어은 Path.Join("c:\\", "temp", "*.txt") 파일을 만들 때 유효 하지 않을 수 있지만 검색 문자열로 유효 합니다.For example, while Path.Join("c:\\", "temp", "*.txt") might be invalid when creating a file, it is valid as a search string. Join따라서 메서드는 성공적으로 해석 합니다.The Join method therefore successfully interprets it.

Join(String, String, String)

세 개의 경로를 단일 경로에 연결합니다.Concatenates three paths into a single path.

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

조인할 첫 번째 경로입니다.The first path to join.

path2
String

조인할 두 번째 경로입니다.The second path to join.

path3
String

조인할 세 번째 경로입니다.The third path to join.

반환

String

연결된 경로입니다.The concatenated path.

설명

이 메서드는 path , 및를 연결 path2 path3 하 고, 경로 구성 요소 중 하나에 디렉터리 구분 기호 문자를 추가 합니다 (아직 없는 경우).This method simply concatenates path, path2, and path3 and adds a directory separator character between any of the path components if one is not already present. path1, 또는 인수의 길이가 0 인 경우 path2 path3 메서드는 나머지 인수를 연결 합니다.If the length of any of path1, path2 or path3 argument is zero, the method concatenates the remaining arguments. 연결 된 결과 문자열의 길이가 0 인 경우이 메서드는를 반환 합니다 String.Empty .If the length of the resulting concatenated string is zero, the method returns String.Empty.

path1또는 path2 가 대상 플랫폼에 적합 하지 않은 경로 구분 기호 문자로 끝나는 경우 Join 메서드는 원래 경로 구분 기호 문자를 유지 하 고 지원 되는 문자를 추가 합니다.If path1 or path2 ends in a path separator character that is not appropriate for the target platform, the Join method preserves the original path separator character and appends the supported one. 이 문제는 \ Unix 기반 시스템에서 경로 구분 기호로 인식 되지 않는 Windows 백슬래시 ("") 문자를 사용 하는 하드 코드 된 경로에서 발생 합니다.This issue arises in hard-coded paths that use the Windows backslash ("\") character, which is not recognized as a path separator on Unix-based systems. 이 문제를 해결 하려면 다음을 수행할 수 있습니다.To work around this issue, you can:

메서드와 달리 Combine Join 메서드는 반환 된 경로의 루트를 시도 하지 않습니다.Unlike the Combine method, the Join method does not attempt to root the returned path. 즉, path2 또는 path2 이 절대 경로인 경우 메서드는 Join 메서드가 수행 하는 것 처럼 이전 경로를 삭제 하지 않습니다 Combine .(That is, if path2 or path2 is an absolute path, the Join method does not discard the previous paths as the Combine method does.

Join와일드 카드 문자를 검색 하는 데 이러한 문자를 사용할 수 있으므로 디렉터리 및 파일 이름에 대 한 잘못 된 문자는 메서드에 의해 허용 되지 않는 것으로 해석 되지 않습니다.Not all invalid characters for directory and file names are interpreted as unacceptable by the Join method, because you can use these characters for search wildcard characters. 예를 들어은 Path.Join("c:\\", "temp", "*.txt") 파일을 만들 때 유효 하지 않을 수 있지만 검색 문자열로 유효 합니다.For example, while Path.Join("c:\\", "temp", "*.txt") might be invalid when creating a file, it is valid as a search string. Join따라서 메서드는 성공적으로 해석 합니다.The Join method therefore successfully interprets it.

Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>)

두 경로 구성 요소를 단일 경로로 연결합니다.Concatenates two path components into a single path.

public:
 static System::String ^ Join(ReadOnlySpan<char> path1, ReadOnlySpan<char> path2);
public static 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>

조인할 첫 번째 경로를 포함하는 문자 범위입니다.A character span that contains the first path to join.

path2
ReadOnlySpan<Char>

조인할 두 번째 경로를 포함하는 문자 범위입니다.A character span that contains the second path to join.

반환

String

결합된 경로입니다.The combined paths.

예제

다음 예제에서는 및 메서드에서 반환 하는 경로의 차이를 보여 Path.Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>) 줍니다 Path.Combine(String, String) .The following example illustrates the difference in the paths returned by the Path.Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>) and Path.Combine(String, String) methods. 첫 번째 문자열이 드라이브 및 루트 디렉터리를 포함 하는 정규화 된 경로이 고 두 번째 문자열이 첫 번째 경로에서 상대 경로인 경우 두 메서드는 동일한 결과를 생성 합니다.When the first string is an fully qualified path that includes a drive and root directory and the second is a relative path from the first path, the two methods produce identical results. 메서드에 대 한 두 번째 및 세 번째 호출에서 ShowPathInformation 두 메서드를 통해 반환 되는 문자열은 분기 합니다.In the second and third calls to the ShowPathInformation method, the strings returned by the two methods diverge. 두 번째 메서드 호출에서 첫 번째 문자열 인수는 드라이브이 고, 두 번째 메서드는 루 팅 된 디렉터리입니다.In the second method call, the first string argument is a drive, while the second is a rooted directory. Join메서드는 두 문자열을 연결 하 고 중복 된 경로 구분 기호를 유지 합니다.The Join method concatenates the two strings and preserves duplicate path separators. Combine메서드는 드라이브를 중단 하 고 현재 드라이브의 루트 디렉터리를 반환 합니다.The Combine method abandons the drive and returns a rooted directory on the current drive. 응용 프로그램의 현재 드라이브가 C:\ 인 경우 문자열은 디렉터리에 있는 파일에 액세스 하는 데 사용 되며 d: 대신 C:에 액세스 합니다.If the application's current drive is C:\ and the string is used to access a file or files in the directory, it would access C: instead of D:. 마지막으로에 대 한 세 번째 호출의 두 인수가 모두 루 팅 되기 때문에 메서드는이를 추가 하 여 ShowPathInformation Join 무의미 파일 경로를 만듭니다 Combine . 반면 메서드는 첫 번째 문자열을 삭제 하 고 두 번째를 반환 합니다.Finally, because both arguments in the third call to ShowPathInformation are rooted, the Join method simply appends them to create a nonsensical file path, while the Combine method discards the first string and returns the second. 파일 액세스에이 문자열을 사용 하면 응용 프로그램에서 중요 한 파일에 대 한 의도 하지 않은 액세스를 제공 합니다.Using this string for file access could give the application unintended access to sensitive files.

using System;
using System.IO;

class Program
{
    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 고 두 경로 구성 요소 사이에 디렉터리 구분 기호 문자를 추가 합니다 path1 path2 .This method simply concatenates path and path2 and adds a directory separator character between the two path components if one is not already present at the end of path1 or the beginning of path2. Length path1 또는의가 0 인 경우 path2 메서드는 다른 경로를 반환 합니다.If the Length of either path1 or path2 is zero, the method returns the other path. Length및의가 모두 0 인 경우이 path1 path2 메서드는를 반환 String.Empty 합니다.If the Length of both path1 and path2 is zero, the method returns String.Empty.

path1가 대상 플랫폼에 적합 하지 않은 경로 구분 기호 문자로 끝나는 경우 Join 메서드는 원래 경로 구분 기호 문자를 유지 하 고 지원 되는 문자를 추가 합니다.If path1 ends in a path separator character that is not appropriate for the target platform, the Join method preserves the original path separator character and appends the supported one. 이 문제는 \ Unix 기반 시스템에서 경로 구분 기호로 인식 되지 않는 Windows 백슬래시 ("") 문자를 사용 하는 하드 코드 된 경로에서 발생 합니다.This issue arises in hard-coded paths that use the Windows backslash ("\") character, which is not recognized as a path separator on Unix-based systems. 이 문제를 해결 하려면 다음을 수행할 수 있습니다.To work around this issue, you can:

메서드와 달리 Combine Join 메서드는 반환 된 경로의 루트를 시도 하지 않습니다.Unlike the Combine method, the Join method does not attempt to root the returned path. 즉, path2 가 절대 경로인 경우 메서드는 Join 메서드를 삭제 path1 하 고 반환 하지 않습니다 path2 Combine . 다음 예제에서는 두 메서드에서 반환 하는 경로의 차이를 보여 줍니다.(That is, if path2 is an absolute path, the Join method does not discard path1 and return path2 as the Combine method does.) The following example illustrates the difference in the paths returned by the two methods. 의 원본이 사용자 입력 인 경우이 path2 메서드를 Combine 사용 하면 응용 프로그램에서 액세스할 수 없는 경우 사용자가 파일 시스템 리소스 (예: C:/Users/User1/Documents/금융/ )에 액세스할 수 있습니다.If the source of path2 is user input, the Combine method makes it possible for a user to access a file system resource (such as C:/Users/User1/Documents/Financial/ in the case of the example) that the application did not intend to make accessible.

Join와일드 카드 문자를 검색 하는 데 이러한 문자를 사용할 수 있으므로 디렉터리 및 파일 이름에 대 한 잘못 된 문자는 메서드에 의해 허용 되지 않는 것으로 해석 되지 않습니다.Not all invalid characters for directory and file names are interpreted as unacceptable by the Join method, because you can use these characters for search wildcard characters. 예를 들어은 Path.Join("c:\\", "*.txt") 파일을 만들 때 유효 하지 않을 수 있지만 검색 문자열로 유효 합니다.For example, while Path.Join("c:\\", "*.txt") might be invalid when creating a file, it is valid as a search string. Join따라서 메서드는 성공적으로 해석 합니다.The Join method therefore successfully interprets it.

추가 정보

Join(String, String)

두 경로를 단일 경로에 연결합니다.Concatenates two paths into a single path.

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

조인할 첫 번째 경로입니다.The first path to join.

path2
String

조인할 두 번째 경로입니다.The second path to join.

반환

String

연결된 경로입니다.The concatenated path.

설명

이 메서드는 및를 연결 하 path path2 고, 경로 구성 요소 중 하나에 디렉터리 구분 기호를 추가 합니다 (아직 없는 경우).This method simply concatenates path and path2 and adds a directory separator character between any of the path components if one is not already present. 또는의 길이가 0 인 path1 경우 path2 메서드는 나머지 인수를 연결 합니다.If the length of either path1 or path2 is zero, the method concatenates the remaining argument. 연결 된 결과 문자열의 길이가 0 인 경우이 메서드는를 반환 합니다 String.Empty .If the length of the resulting concatenated string is zero, the method returns String.Empty.

path1가 대상 플랫폼에 적합 하지 않은 경로 구분 기호 문자로 끝나는 경우 Join 메서드는 원래 경로 구분 기호 문자를 유지 하 고 지원 되는 문자를 추가 합니다.If path1 ends in a path separator character that is not appropriate for the target platform, the Join method preserves the original path separator character and appends the supported one. 이 문제는 \ Unix 기반 시스템에서 경로 구분 기호로 인식 되지 않는 Windows 백슬래시 ("") 문자를 사용 하는 하드 코드 된 경로에서 발생 합니다.This issue arises in hard-coded paths that use the Windows backslash ("\") character, which is not recognized as a path separator on Unix-based systems. 이 문제를 해결 하려면 다음을 수행할 수 있습니다.To work around this issue, you can:

메서드와 달리 Combine Join 메서드는 반환 된 경로의 루트를 시도 하지 않습니다.Unlike the Combine method, the Join method does not attempt to root the returned path. 즉, path2 가 절대 경로인 경우 메서드는 Join 메서드가 수행 하는 것 처럼 이전 경로를 삭제 하지 않습니다 Combine .(That is, if path2 is an absolute path, the Join method does not discard the previous paths as the Combine method does.

Join와일드 카드 문자를 검색 하는 데 이러한 문자를 사용할 수 있으므로 디렉터리 및 파일 이름에 대 한 잘못 된 문자는 메서드에 의해 허용 되지 않는 것으로 해석 되지 않습니다.Not all invalid characters for directory and file names are interpreted as unacceptable by the Join method, because you can use these characters for search wildcard characters. 예를 들어은 Path.Join("c:\\", "temp", "*.txt") 파일을 만들 때 유효 하지 않을 수 있지만 검색 문자열로 유효 합니다.For example, while Path.Join("c:\\", "temp", "*.txt") might be invalid when creating a file, it is valid as a search string. Join따라서 메서드는 성공적으로 해석 합니다.The Join method therefore successfully interprets it.

Join(String[])

경로 배열을 단일 경로로 연결합니다.Concatenates an array of paths into a single path.

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[]

경로 배열입니다.An array of paths.

반환

String

연결된 경로입니다.The concatenated path.

설명

이 메서드는 모든 문자열을에 연결 paths 하 고, 경로 구성 요소 중 하나에 디렉터리 구분 기호를 추가 합니다 (아직 없는 경우).This method simply concatenates all the strings in paths and adds a directory separator character between any of the path components if one is not already present. Length의 경로 중 하나가 0 인 경우이 paths 메서드는 나머지 인수를 연결 합니다.If the Length of any of the paths in paths is zero, the method concatenates the remaining arguments. 연결 된 문자열의 길이가 0 인 경우이 메서드는를 반환 합니다 String.Empty .If the resulting concatenated string's length is zero, the method returns String.Empty.

마지막 항목을 제외한의 경로가 paths 대상 플랫폼에 적합 하지 않은 경로 구분 기호 문자로 끝나는 경우 Join 메서드는 원래 경로 구분 기호 문자를 유지 하 고 지원 되는 문자를 추가 합니다.If any of the paths in paths, except for the last one, ends in a path separator character that is not appropriate for the target platform, the Join method preserves the original path separator character and appends the supported one. 이 문제는 \ Unix 기반 시스템에서 경로 구분 기호로 인식 되지 않는 Windows 백슬래시 ("") 문자를 사용 하는 하드 코드 된 경로에서 발생 합니다.This issue arises in hard-coded paths that use the Windows backslash ("\") character, which is not recognized as a path separator on Unix-based systems. 이 문제를 해결 하려면 다음을 수행할 수 있습니다.To work around this issue, you can:

메서드와 달리 Combine Join 메서드는 반환 된 경로의 루트를 시도 하지 않습니다.Unlike the Combine method, the Join method does not attempt to root the returned path. 즉, 마지막 경로를 제외한의 경로 중 paths 하나가 절대 경로인 경우 메서드는 메서드를 사용할 Join 때 이전 경로를 삭제 하지 않습니다 Combine .(That is, if any of the paths in paths, except for the last one, is an absolute path, the Join method does not discard the previous paths as the Combine method does.

Join와일드 카드 문자를 검색 하는 데 이러한 문자를 사용할 수 있으므로 디렉터리 및 파일 이름에 대 한 잘못 된 문자는 메서드에 의해 허용 되지 않는 것으로 해석 되지 않습니다.Not all invalid characters for directory and file names are interpreted as unacceptable by the Join method, because you can use these characters for search wildcard characters. 예를 들어은 Path.Join("c:\\", "temp", "*.txt") 파일을 만들 때 유효 하지 않을 수 있지만 검색 문자열로 유효 합니다.For example, while Path.Join("c:\\", "temp", "*.txt") might be invalid when creating a file, it is valid as a search string. Join따라서 메서드는 성공적으로 해석 합니다.The Join method therefore successfully interprets it.

Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>)

세 개의 경로 구성 요소를 단일 경로로 연결합니다.Concatenates three path components into a single path.

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);
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>

조인할 첫 번째 경로를 포함하는 문자 범위입니다.A character span that contains the first path to join.

path2
ReadOnlySpan<Char>

조인할 두 번째 경로를 포함하는 문자 범위입니다.A character span that contains the second path to join.

path3
ReadOnlySpan<Char>

조인할 세 번째 경로를 포함하는 문자 범위입니다.A character span that contains the third path to join.

반환

String

연결된 경로입니다.The concatenated path.

예제

다음 예제에서는 및 메서드에서 반환 하는 경로의 차이를 보여 Path.Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>) 줍니다 Path.Combine(String, String, String) .The following example illustrates the difference in the paths returned by the Path.Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>) and Path.Combine(String, String, String) methods. 첫 번째 문자열이 드라이브 및 루트 디렉터리를 포함 하는 정규화 된 경로이 고 두 번째 문자열이 첫 번째 경로에서 상대 경로인 경우 두 메서드는 동일한 결과를 생성 합니다.When the first string is a fully qualified path that includes a drive and root directory and the second is a relative path from the first path, the two methods produce identical results. 메서드에 대 한 두 번째 및 세 번째 호출에서 ShowPathInformation 두 메서드를 통해 반환 되는 문자열은 분기 합니다.In the second and third calls to the ShowPathInformation method, the strings returned by the two methods diverge. 두 번째 메서드 호출에서 첫 번째 문자열 인수는 드라이브이 고, 두 번째 메서드는 루 팅 된 디렉터리입니다.In the second method call, the first string argument is a drive, while the second is a rooted directory. Join메서드는 두 문자열을 연결 하 고 중복 된 경로 구분 기호를 유지 합니다.The Join method concatenates the two strings and preserves duplicate path separators. 메서드를 호출 하면 GetFullPath 중복이 제거 됩니다.A call to the GetFullPath method would eliminate the duplication. Combine메서드는 드라이브를 중단 하 고 현재 드라이브의 루트 디렉터리를 반환 합니다.The Combine method abandons the drive and returns a rooted directory on the current drive. 응용 프로그램의 현재 드라이브가 C:\ 인 경우 문자열은 디렉터리에 있는 파일에 액세스 하는 데 사용 되며 d: 대신 C:에 액세스 합니다.If the application's current drive is C:\ and the string is used to access a file or files in the directory, it would access C: instead of D:. 마지막으로,에 대 한 세 번째 호출의 마지막 인수가 루 팅 되기 때문에 ShowPathInformation Join 메서드는 처음 두 인수에이를 추가 하 여 무의미 파일 경로를 만듭니다 Combine . 반면 메서드는 처음 두 문자열을 삭제 하 고 세 번째를 반환 합니다.Finally, because the final argument in the third call to ShowPathInformation are rooted, the Join method simply appends it to the first two arguments to create a nonsensical file path, while the Combine method discards the first two strings and returns the third. 파일 액세스에이 문자열을 사용 하면 응용 프로그램에서 중요 한 파일에 대 한 의도 하지 않은 액세스를 제공 합니다.Using this string for file access could give the application unintended access to sensitive files.

using System;
using System.IO;

class Program
{
    static void Main()
    {
        string path1 = "C:/";
        string path2 = "users/user1/documents";
        string path3 = "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);
    }

   private static void ShowPathInformation(string path1, string path2, string path3)
    {
        var 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)}'");
        Console.WriteLine($"   {Path.GetFullPath(result)}");
    }
}
// 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'
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 하 고, 경로 구성 요소 중 하나에 디렉터리 구분 기호 문자를 추가 합니다 (아직 없는 경우).This method simply concatenates path, path2, and path3 and adds a directory separator character between any of the path components if one is not already present. Length path1 , 또는 인수의가 0 인 경우이 path2 path3 메서드는 나머지 인수를 연결 합니다.If the Length of any of path1, path2, or path3 arguments is zero, the method concatenates the remaining arguments. ReadOnlySpan<T>.Length모든 구성 요소의가 0 인 경우이 메서드는를 반환 합니다 String.Empty .If the ReadOnlySpan<T>.Length of all components is zero, the method returns String.Empty.

path1또는 path2 가 대상 플랫폼에 적합 하지 않은 경로 구분 기호 문자로 끝나는 경우 Join 메서드는 원래 경로 구분 기호 문자를 유지 하 고 지원 되는 문자를 추가 합니다.If path1 or path2 ends in a path separator character that is not appropriate for the target platform, the Join method preserves the original path separator character and appends the supported one. 이 문제는 \ Unix 기반 시스템에서 경로 구분 기호로 인식 되지 않는 Windows 백슬래시 ("") 문자를 사용 하는 하드 코드 된 경로에서 발생 합니다.This issue arises in hard-coded paths that use the Windows backslash ("\") character, which is not recognized as a path separator on Unix-based systems. 이 문제를 해결 하려면 다음을 수행할 수 있습니다.To work around this issue, you can:

메서드와 달리 Combine Join 메서드는 반환 된 경로의 루트를 시도 하지 않습니다.Unlike the Combine method, the Join method does not attempt to root the returned path. 즉, path2 또는 path2 이 절대 경로인 경우 메서드는 Join 메서드가 수행 하는 것 처럼 이전 경로를 삭제 하지 않습니다 Combine .(That is, if path2 or path2 is an absolute path, the Join method does not discard the previous paths as the Combine method does.

Join와일드 카드 문자를 검색 하는 데 이러한 문자를 사용할 수 있으므로 디렉터리 및 파일 이름에 대 한 잘못 된 문자는 메서드에 의해 허용 되지 않는 것으로 해석 되지 않습니다.Not all invalid characters for directory and file names are interpreted as unacceptable by the Join method, because you can use these characters for search wildcard characters. 예를 들어은 Path.Join("c:\\", "temp", "*.txt") 파일을 만들 때 유효 하지 않을 수 있지만 검색 문자열로 유효 합니다.For example, while Path.Join("c:\\", "temp", "*.txt") might be invalid when creating a file, it is valid as a search string. Join따라서 메서드는 성공적으로 해석 합니다.The Join method therefore successfully interprets it.

추가 정보

적용 대상