Path.Join 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
오버로드
Join(String, String, String, String) |
4개의 경로를 단일 경로로 연결합니다. |
Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>) |
4개의 경로 구성 요소를 단일 경로로 연결합니다. |
Join(String, String, String) |
세 개의 경로를 단일 경로로 연결합니다. |
Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>) |
세 개의 경로 구성 요소를 단일 경로로 연결합니다. |
Join(ReadOnlySpan<String>) |
경로 범위를 단일 경로로 연결합니다. |
Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>) |
두 경로 구성 요소를 단일 경로로 연결합니다. |
Join(String[]) |
경로 배열을 단일 경로에 연결합니다. |
Join(String, String) |
두 경로를 단일 경로에 연결합니다. |
Join(String, String, String, String)
- Source:
- Path.cs
- Source:
- Path.cs
- Source:
- Path.cs
4개의 경로를 단일 경로로 연결합니다.
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
조인할 두 번째 경로입니다.
- path3
- String
조인할 세 번째 경로입니다.
- path4
- String
조인할 네 번째 경로입니다.
반환
연결된 경로입니다.
설명
이 메서드는 단순히 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>)
- Source:
- Path.cs
- Source:
- Path.cs
- Source:
- Path.cs
4개의 경로 구성 요소를 단일 경로로 연결합니다.
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>
조인할 두 번째 경로를 포함하는 문자 범위입니다.
- path3
- ReadOnlySpan<Char>
조인할 세 번째 경로를 포함하는 문자 범위입니다.
- path4
- ReadOnlySpan<Char>
조인할 네 번째 경로를 포함하는 문자 범위입니다.
반환
연결된 경로입니다.
설명
이 메서드는 단순히 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)
- Source:
- Path.cs
- Source:
- Path.cs
- Source:
- Path.cs
세 개의 경로를 단일 경로로 연결합니다.
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
조인할 두 번째 경로입니다.
- path3
- String
조인할 세 번째 경로입니다.
반환
연결된 경로입니다.
설명
이 메서드는 단순히 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>)
- Source:
- Path.cs
- Source:
- Path.cs
- Source:
- Path.cs
세 개의 경로 구성 요소를 단일 경로로 연결합니다.
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>
조인할 두 번째 경로를 포함하는 문자 범위입니다.
- path3
- ReadOnlySpan<Char>
조인할 세 번째 경로를 포함하는 문자 범위입니다.
반환
연결된 경로입니다.
예제
다음 예제에서는 Path.Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>) 및 Path.Combine(String, String, String) 메서드에서 반환된 경로의 차이를 보여 줍니다. 첫 번째 문자열이 드라이브 및 루트 디렉터리를 포함하는 정규화된 경로이고 두 번째 문자열이 첫 번째 경로의 상대 경로인 경우 두 메서드는 동일한 결과를 생성합니다.
ShowPathInformation
메서드에 대한 두 번째 및 세 번째 호출에서는 두 메서드가 반환한 문자열이 분기됩니다. 두 번째 메서드 호출에서 첫 번째 문자열 인수는 드라이브이고 두 번째 문자열 인수는 루트 디렉터리입니다.
Join
메서드는 두 문자열을 연결하고 중복 경로 구분 기호를 유지합니다.
GetFullPath 메서드를 호출하면 중복이 제거됩니다.
Combine
메서드는 드라이브를 중단하고 현재 드라이브에 루팅된 디렉터리를 반환합니다. 애플리케이션의 현재 드라이브가 C:\이고 문자열이 디렉터리의 파일 또는 파일에 액세스하는 데 사용되는 경우 D: 대신 C:에 액세스합니다. 마지막으로 ShowPathInformation
대한 세 번째 호출의 마지막 인수가 루팅되므로 Join
메서드는 처음 두 인수에 추가하여 무의미한 파일 경로를 만드는 반면 Combine
메서드는 처음 두 문자열을 삭제하고 세 번째 문자열을 반환합니다. 파일 액세스에 이 문자열을 사용하면 애플리케이션에서 중요한 파일에 의도하지 않게 액세스할 수 있습니다.
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
메서드는 성공적으로 해석합니다.
추가 정보
- Windows 시스템 파일 경로 형식
적용 대상
Join(ReadOnlySpan<String>)
경로 범위를 단일 경로로 연결합니다.
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>)
- Source:
- Path.cs
- Source:
- Path.cs
- Source:
- Path.cs
두 경로 구성 요소를 단일 경로로 연결합니다.
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>
조인할 두 번째 경로를 포함하는 문자 범위입니다.
반환
결합된 경로입니다.
예제
다음 예제에서는 Path.Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>) 및 Path.Combine(String, String) 메서드에서 반환된 경로의 차이를 보여 줍니다. 첫 번째 문자열이 드라이브 및 루트 디렉터리를 포함하는 정규화된 경로이고 두 번째 문자열이 첫 번째 경로의 상대 경로인 경우 두 메서드는 동일한 결과를 생성합니다.
ShowPathInformation
메서드에 대한 두 번째 및 세 번째 호출에서는 두 메서드가 반환한 문자열이 분기됩니다. 두 번째 메서드 호출에서 첫 번째 문자열 인수는 드라이브이고 두 번째 문자열 인수는 루트 디렉터리입니다.
Join
메서드는 두 문자열을 연결하고 중복 경로 구분 기호를 유지합니다.
Combine
메서드는 드라이브를 중단하고 현재 드라이브에 루팅된 디렉터리를 반환합니다. 애플리케이션의 현재 드라이브가 C:\이고 문자열이 디렉터리의 파일 또는 파일에 액세스하는 데 사용되는 경우 D: 대신 C:에 액세스합니다. 마지막으로, ShowPathInformation
대한 세 번째 호출의 두 인수가 모두 루팅되므로 Join
메서드는 단순히 추가하여 무의미한 파일 경로를 만드는 반면 Combine
메서드는 첫 번째 문자열을 삭제하고 두 번째 문자열을 반환합니다. 파일 액세스에 이 문자열을 사용하면 애플리케이션에서 중요한 파일에 의도하지 않게 액세스할 수 있습니다.
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
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
반환하지 않습니다. 다음 예제에서는 두 메서드에서 반환된 경로의 차이를 보여 줍니다.
path2
원본이 사용자 입력인 경우 Combine 메서드를 사용하면 애플리케이션에서 액세스할 수 없도록 하려는 파일 시스템 리소스(예: C:/Users/User1/Documents/Financial/)에 액세스할 수 있습니다.
이러한 문자를 검색 와일드카드 문자에 사용할 수 있으므로 디렉터리 및 파일 이름에 대한 모든 잘못된 문자가 Join
메서드에서 허용되지 않는 것으로 해석되는 것은 아닙니다. 예를 들어 파일을 만들 때 Path.Join("c:\\", "*.txt")
유효하지 않을 수 있지만 검색 문자열로 유효합니다. 따라서 Join
메서드는 성공적으로 해석합니다.
추가 정보
- Windows 시스템 파일 경로 형식
적용 대상
Join(String[])
- Source:
- Path.cs
- Source:
- Path.cs
- Source:
- Path.cs
경로 배열을 단일 경로에 연결합니다.
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)
- Source:
- Path.cs
- Source:
- Path.cs
- Source:
- Path.cs
두 경로를 단일 경로에 연결합니다.
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
조인할 두 번째 경로입니다.
반환
연결된 경로입니다.
설명
이 메서드는 단순히 path
연결 하 고 path2
아직 없는 경우 경로 구성 요소 간에 디렉터리 구분 기호 문자를 추가 합니다.
path1
또는 path2
길이가 0이면 메서드는 나머지 인수를 연결합니다. 연결된 결과 문자열의 길이가 0이면 메서드는 String.Empty반환합니다.
path1
대상 플랫폼에 적합하지 않은 경로 구분 기호 문자로 끝나는 경우 Join
메서드는 원래 경로 구분 기호 문자를 유지하고 지원되는 문자를 추가합니다. 이 문제는 Unix 기반 시스템에서 경로 구분 기호로 인식되지 않는 Windows 백슬래시("\") 문자를 사용하는 하드 코딩된 경로에서 발생합니다. 이 문제를 해결하려면 다음을 수행할 수 있습니다.
디렉터리 구분 기호 문자를 하드 코딩하지 않고 Path.DirectorySeparatorChar 속성의 값을 검색합니다.
디렉터리 구분 기호 문자로 슬래시("/")를 사용합니다. 이 문자는 Unix 기반 시스템의 Path.DirectorySeparatorChar 속성과 Windows 시스템의 Path.AltDirectorySeparatorChar 속성에 의해 반환됩니다.
Combine 메서드와 달리 Join 메서드는 반환된 경로의 루트를 시도하지 않습니다. 즉, path2
절대 경로인 경우 Join
메서드는 Combine 메서드처럼 이전 경로를 삭제하지 않습니다.
이러한 문자를 검색 와일드카드 문자에 사용할 수 있으므로 디렉터리 및 파일 이름에 대한 모든 잘못된 문자가 Join
메서드에서 허용되지 않는 것으로 해석되는 것은 아닙니다. 예를 들어 파일을 만들 때 Path.Join("c:\\", "temp", "*.txt")
유효하지 않을 수 있지만 검색 문자열로 유효합니다. 따라서 Join
메서드는 성공적으로 해석합니다.
적용 대상
.NET