Path Class

Definition

파일이나 디렉터리 경로 정보를 포함하는 String 인스턴스에 대한 작업을 수행합니다.Performs operations on String instances that contain file or directory path information. 이러한 작업은 플랫폼 간에 호환되는 방식으로 수행됩니다.These operations are performed in a cross-platform manner.

public ref class Path abstract sealed
public ref class Path sealed
public static class Path
public sealed class Path
[System.Runtime.InteropServices.ComVisible(true)]
public static class Path
type Path = class
Public Class Path
Public NotInheritable Class Path
Inheritance
Path
Attributes

Examples

다음 예제에서는 Path 클래스의 일부 주 멤버를 보여 줍니다.The following example demonstrates some of the main members of the Path class.

using namespace System;
using namespace System::IO;
int main()
{
   String^ path1 = "c:\\temp\\MyTest.txt";
   String^ path2 = "c:\\temp\\MyTest";
   String^ path3 = "temp";
   if ( Path::HasExtension( path1 ) )
   {
      Console::WriteLine( "{0} has an extension.", path1 );
   }

   if (  !Path::HasExtension( path2 ) )
   {
      Console::WriteLine( "{0} has no extension.", path2 );
   }

   if (  !Path::IsPathRooted( path3 ) )
   {
      Console::WriteLine( "The string {0} contains no root information.", path3 );
   }

   Console::WriteLine( "The full path of {0} is {1}.", path3, Path::GetFullPath( path3 ) );
   Console::WriteLine( "{0} is the location for temporary files.", Path::GetTempPath() );
   Console::WriteLine( "{0} is a file available for use.", Path::GetTempFileName() );
   Console::WriteLine( "\r\nThe set of invalid characters in a path is:" );
   Console::WriteLine( "(Note that the wildcard characters '*' and '?' are not invalid.):" );
   Collections::IEnumerator^ myEnum = Path::InvalidPathChars->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      Char c =  *safe_cast<Char^>(myEnum->Current);
      Console::WriteLine( c );
   }
}

using System;
using System.IO;

class Test
{
    
    public static void Main()
    {
        string path1 = @"c:\temp\MyTest.txt";
        string path2 = @"c:\temp\MyTest";
        string path3 = @"temp";

        if (Path.HasExtension(path1))
        {
            Console.WriteLine("{0} has an extension.", path1);
        }

        if (!Path.HasExtension(path2))
        {
            Console.WriteLine("{0} has no extension.", path2);
        }

        if (!Path.IsPathRooted(path3))
        {
            Console.WriteLine("The string {0} contains no root information.", path3);
        }

        Console.WriteLine("The full path of {0} is {1}.", path3, Path.GetFullPath(path3));
        Console.WriteLine("{0} is the location for temporary files.", Path.GetTempPath());
        Console.WriteLine("{0} is a file available for use.", Path.GetTempFileName());

        /* This code produces output similar to the following:
         * c:\temp\MyTest.txt has an extension.
         * c:\temp\MyTest has no extension.
         * The string temp contains no root information.
         * The full path of temp is D:\Documents and Settings\cliffc\My Documents\Visual Studio 2005\Projects\ConsoleApplication2\ConsoleApplication2\bin\Debug\temp.
         * D:\Documents and Settings\cliffc\Local Settings\Temp\8\ is the location for temporary files.
         * D:\Documents and Settings\cliffc\Local Settings\Temp\8\tmp3D.tmp is a file available for use.
         */
    }
}
Imports System.IO

Public Class Test

    Public Shared Sub Main()
        Dim path1 As String = "c:\temp\MyTest.txt"
        Dim path2 As String = "c:\temp\MyTest"
        Dim path3 As String = "temp"

        If Path.HasExtension(path1) Then
            Console.WriteLine("{0} has an extension.", path1)
        End If

        If Path.HasExtension(path2) = False Then
            Console.WriteLine("{0} has no extension.", path2)
        End If

        If Path.IsPathRooted(path3) = False Then
            Console.WriteLine("The string {0} contains no root information.", path3)
        End If

        Console.WriteLine("The full path of {0} is {1}.", path3, Path.GetFullPath(path3))
        Console.WriteLine("{0} is the location for temporary files.", Path.GetTempPath())
        Console.WriteLine("{0} is a file available for use.", Path.GetTempFileName())

        ' This code produces output similar to the following:
        ' c:\temp\MyTest.txt has an extension.
        ' c:\temp\MyTest has no extension.
        ' The string temp contains no root information.
        ' The full path of temp is D:\Documents and Settings\cliffc\My Documents\Visual Studio 2005\Projects\ConsoleApplication2\ConsoleApplication2\bin\Debug\temp.
        ' D:\Documents and Settings\cliffc\Local Settings\Temp\8\ is the location for temporary files.
        ' D:\Documents and Settings\cliffc\Local Settings\Temp\8\tmp3D.tmp is a file available for use.

    End Sub
End Class

Remarks

경로가 파일 또는 디렉터리의 위치를 제공 하는 문자열입니다.A path is a string that provides the location of a file or directory. 디스크의 위치로 경로 반드시 가리키지 않습니다 예를 들어, 경로 메모리에 또는 디바이스에서 위치를 매핑할 수 있습니다.A path does not necessarily point to a location on disk; for example, a path might map to a location in memory or on a device. 패스의 정확한 형식은 현재 플랫폼에 의해 결정 됩니다.The exact format of a path is determined by the current platform. 예를 들어 일부 시스템 경로 시작할 수 드라이브 또는 볼륨 문자를 사용 하 여이 요소를 다른 시스템에 없을 때.For example, on some systems, a path can start with a drive or volume letter, while this element is not present in other systems. 일부 시스템에서는 파일 경로 파일에 저장 된 정보 유형을 지정 하는 확장을 포함할 수 있습니다.On some systems, file paths can contain extensions, which indicate the type of information stored in the file. 파일 이름 확장명의 형식은 플랫폼에 따라 다릅니다. 예를 들어 일부 시스템 3 자에 대 한 확장을 제한 하 고 없기도 합니다.The format of a file name extension is platform-dependent; for example, some systems limit extensions to three characters, and others do not. 현재 플랫폼에는 또한 경로의 요소를 구분 하는 데 사용 되는 문자 집합 및 경로 지정 하는 경우에 사용할 수 없는 문자 집합을 결정 합니다.The current platform also determines the set of characters used to separate the elements of a path, and the set of characters that cannot be used when specifying paths. 이러한 차이로 인해 Path 클래스의 일부 멤버에 대 한 정확한 동작 뿐만 아니라 Path 클래스의 필드도 플랫폼에 종속 됩니다.Because of these differences, the fields of the Path class as well as the exact behavior of some members of the Path class are platform-dependent.

경로 절대 또는 상대 위치 정보를 포함할 수 있습니다.A path can contain absolute or relative location information. 위치를 완벽 하 게 지정 하는 절대 경로: 파일 또는 디렉터리 고유 하 게 식별할 수 현재 위치에 관계 없이 합니다.Absolute paths fully specify a location: the file or directory can be uniquely identified regardless of the current location. 상대 경로 부분 위치를 지정 합니다: 상대 경로 사용 하 여 지정 된 파일을 찾을 때 현재 위치가 시작 지점으로 사용 됩니다.Relative paths specify a partial location: the current location is used as the starting point when locating a file specified with a relative path. 현재 디렉터리를 확인 하려면 Directory.GetCurrentDirectory를 호출 합니다.To determine the current directory, call Directory.GetCurrentDirectory.

.NET core 1.1 및 이후 버전 및.NET Framework 4.6.2 이상와 같은 디바이스 이름에는 파일 시스템 개체에 대 한 액세스도 지원 "\? \C:"합니다..NET Core 1.1 and later versions and .NET Framework 4.6.2 and later versions also support access to file system objects that are device names, such as "\?\C:".

Windows의 파일 경로 형식에 대 한 자세한 내용은 windows 시스템의 파일 경로 형식을 참조 하세요.For more information on file path formats on Windows, see File path formats on Windows systems.

Path 클래스의 멤버 대부분은 파일 시스템과 상호 작용 하지 않으며 경로 문자열로 지정 된 파일이 있는지 확인 하지 않습니다.Most members of the Path class do not interact with the file system and do not verify the existence of the file specified by a path string. ChangeExtension와 같이 경로 문자열을 수정 하는 Path 클래스 멤버는 파일 시스템의 파일 이름에 영향을 주지 않습니다.Path class members that modify a path string, such as ChangeExtension, have no effect on names of files in the file system. 그러나 Path 멤버는 지정 된 경로 문자열의 내용에 대 한 유효성을 검사 하 고, GetInvalidPathChars 메서드에서 반환 되는 문자에 정의 된 대로 문자열에 경로 문자열에 유효 하지 않은 문자가 포함 된 경우 ArgumentException 예외를 throw 합니다.Path members do, however, validate the contents of a specified path string, and throw an ArgumentException exception if the string contains characters that are not valid in path strings, as defined in the characters returned from the GetInvalidPathChars method. 예를 들어 Windows 기반 데스크톱 플랫폼에서 잘못 된 경로 문자에는 큰따옴표 ("), 보다 작음 (<), 보다 큼 (>), 파이프 (|), 백스페이스 (\b), null (\ 0) 및 유니코드 문자 16 ~ 18, 20 ~ 25가 포함 될 수 있습니다.For example, on Windows-based desktop platforms, invalid path characters might include quote ("), less than (<), greater than (>), pipe (|), backspace (\b), null (\0), and Unicode characters 16 through 18 and 20 through 25.

Path 클래스의 멤버를 사용 하면 파일 이름 확장명이 경로의 일부 인지 여부를 확인 하 고 두 문자열을 하나의 경로 이름으로 결합 하는 등의 일반적인 작업을 쉽고 빠르게 수행할 수 있습니다.The members of the Path class enable you to quickly and easily perform common operations such as determining whether a file name extension is part of a path, and combining two strings into one path name.

Path 클래스의 모든 멤버는 정적 이므로 경로 인스턴스 없이 호출 될 수 있습니다.All members of the Path class are static and can therefore be called without having an instance of a path.

Note

입력 문자열로 경로 허용 하는 멤버를 해당 경로 올바른 형식 이어야 합니다. 또는 예외가 발생 합니다.In members that accept a path as an input string, that path must be well-formed or an exception is raised. 예를 들어, 경로 정규화 공백으로 시작 하지만 경로 클래스의 메서드에서 잘리지 않습니다.For example, if a path is fully qualified but begins with a space, the path is not trimmed in methods of the class. 따라서 경로 잘못 되었으며 예외가 발생 합니다.Therefore, the path is malformed and an exception is raised. 마찬가지로, 경로 또는 경로의 조합을 두 번 정규화 될 수 없습니다.Similarly, a path or a combination of paths cannot be fully qualified twice. 예를 들어, "c:\temp c:\windows"는 또한 대부분의 경우에서 예외가 발생합니다.For example, "c:\temp c:\windows" also raises an exception in most cases. 경로 잘 구성 된 경우에 경로 문자열을 허용 하는 메서드를 사용 하 여 확인 합니다.Ensure that your paths are well-formed when using methods that accept a path string.

경로 허용 하는 멤버의 경로 파일 또는 디렉터리를 참조할 수 있습니다.In members that accept a path, the path can refer to a file or just a directory. 지정된 된 경로 상대 경로 또는 서버 및 공유 이름에 대 한 범용 명명 규칙 (UNC) 경로 참조할 수 있습니다.The specified path can also refer to a relative path or a Universal Naming Convention (UNC) path for a server and share name. 예를 들어, 다음은 허용 가능한 경로.For example, all the following are acceptable paths:

  • "c:\\MyDir\\MyFile.txt" C#또는 "c:\MyDir\MyFile.txt" (Visual Basic)."c:\\MyDir\\MyFile.txt" in C#, or "c:\MyDir\MyFile.txt" in Visual Basic.

  • Visual Basic의 "c:\\MyDir C#" 또는 "c:\mydir"입니다."c:\\MyDir" in C#, or "c:\MyDir" in Visual Basic.

  • Visual Basic의 "MyDir\\MySubdir C#" 또는 "MyDir\MySubDir"입니다."MyDir\\MySubdir" in C#, or "MyDir\MySubDir" in Visual Basic.

  • "\\\\MyServer\\MyShare" in C#"또는"\myserver\myshare "(Visual Basic)."\\\\MyServer\\MyShare" in C#, or "\\MyServer\MyShare" in Visual Basic.

문자열에서 이러한 모든 작업이 수행 되 되므로 모든 시나리오에서 결과가 올바른지 확인할 수 없습니다.Because all these operations are performed on strings, it is impossible to verify that the results are valid in all scenarios. 예를 들어 GetExtension 메서드는 전달 하는 문자열을 구문 분석 하 고 해당 문자열에서 확장명을 반환 합니다.For example, the GetExtension method parses a string that you pass to it and returns the extension from that string. 그러나 해당 확장을 사용 하 여 파일을 디스크에 있는지이 아닙니다.However, this does not mean that a file with that extension exists on the disk.

일반적인 i/o 작업 목록은 일반적인 I/o 작업을 참조 하세요.For a list of common I/O tasks, see Common I/O Tasks.

Fields

AltDirectorySeparatorChar

계층적 파일 시스템 구조를 반영하는 경로 문자열에서 디렉터리 수준을 구분하는 데 사용되는 플랫폼 특정 대체 문자를 제공합니다.Provides a platform-specific alternate character used to separate directory levels in a path string that reflects a hierarchical file system organization.

DirectorySeparatorChar

계층적 파일 시스템 구조를 반영하는 경로 문자열에서 디렉터리 수준을 구분하는 데 사용되는 플랫폼 특정 문자를 제공합니다.Provides a platform-specific character used to separate directory levels in a path string that reflects a hierarchical file system organization.

InvalidPathChars

Path 클래스의 멤버에 전달되는 경로 문자열 인수에 사용할 수 없는 플랫폼 특정 문자 배열을 제공합니다.Provides a platform-specific array of characters that cannot be specified in path string arguments passed to members of the Path class.

PathSeparator

환경 변수에서 경로 문자열을 구분하는 데 사용되는 플랫폼 특정 구분 문자입니다.A platform-specific separator character used to separate path strings in environment variables.

VolumeSeparatorChar

플랫폼 특정 볼륨 구분 기호 문자를 제공합니다.Provides a platform-specific volume separator character.

Methods

ChangeExtension(String, String)

경로 문자열의 확장명을 변경합니다.Changes the extension of a path string.

Combine(String, String)

두 문자열을 한 경로로 결합합니다.Combines two strings into a path.

Combine(String, String, String)

세 문자열을 한 경로로 결합합니다.Combines three strings into a path.

Combine(String, String, String, String)

네 문자열을 한 경로로 결합합니다.Combines four strings into a path.

Combine(String[])

문자열 배열을 한 경로로 결합합니다.Combines an array of strings into a path.

EndsInDirectorySeparator(ReadOnlySpan<Char>)

읽기 전용 범위로 지정된 경로가 디렉터리 구분 기호에서 끝나는지 여부를 나타내는 값을 반환합니다.Returns a value that indicates whether the path, specified as a read-only span, ends in a directory separator.

EndsInDirectorySeparator(String)

지정된 경로가 디렉터리 구분 기호로 끝나는지 여부를 나타내는 값을 반환합니다.Returns a value that indicates whether the specified path ends in a directory separator.

GetDirectoryName(ReadOnlySpan<Char>)

문자 범위로 표시되는 지정된 경로의 디렉터리 정보를 반환합니다.Returns the directory information for the specified path represented by a character span.

GetDirectoryName(String)

지정된 경로 문자열에 대한 디렉터리 정보를 반환합니다.Returns the directory information for the specified path string.

GetExtension(ReadOnlySpan<Char>)

읽기 전용 문자 범위로 표시되는 파일 경로의 확장명을 반환합니다.Returns the extension of a file path that is represented by a read-only character span.

GetExtension(String)

지정된 경로 문자열의 확장명(마침표 "." 포함)을 반환합니다.Returns the extension (including the period ".") of the specified path string.

GetFileName(ReadOnlySpan<Char>)

읽기 전용 문자 범위로 표시되는 파일 경로의 파일 이름 및 확장명을 반환합니다.Returns the file name and extension of a file path that is represented by a read-only character span.

GetFileName(String)

지정된 경로 문자열에서 파일 이름과 확장명을 반환합니다.Returns the file name and extension of the specified path string.

GetFileNameWithoutExtension(ReadOnlySpan<Char>)

읽기 전용 문자 범위로 표시되는 파일 경로의 확장명 없는 파일 이름을 반환합니다.Returns the file name without the extension of a file path that is represented by a read-only character span.

GetFileNameWithoutExtension(String)

확장명 없이 지정된 경로 문자열의 파일 이름을 반환합니다.Returns the file name of the specified path string without the extension.

GetFullPath(String)

지정된 경로 문자열에 대한 절대 경로를 반환합니다.Returns the absolute path for the specified path string.

GetFullPath(String, String)

상대 경로와 정규화된 기본 경로에서 절대 경로를 반환합니다.Returns an absolute path from a relative path and a fully qualified base path.

GetInvalidFileNameChars()

파일 이름에 사용할 수 없는 문자가 포함된 배열을 가져옵니다.Gets an array containing the characters that are not allowed in file names.

GetInvalidPathChars()

경로 이름에 사용할 수 없는 문자가 포함된 배열을 가져옵니다.Gets an array containing the characters that are not allowed in path names.

GetPathRoot(ReadOnlySpan<Char>)

지정된 문자 범위에 포함된 경로에서 루트 디렉터리 정보를 가져옵니다.Gets the root directory information from the path contained in the specified character span.

GetPathRoot(String)

지정된 문자열에 포함된 경로로부터 루트 디렉터리 정보를 가져옵니다.Gets the root directory information from the path contained in the specified string.

GetRandomFileName()

임의의 폴더 이름 또는 파일 이름을 반환합니다.Returns a random folder name or file name.

GetRelativePath(String, String)

한 경로에서 다른 경로까지 상대 경로를 반환합니다.Returns a relative path from one path to another.

GetTempFileName()

디스크에 크기가 0바이트인 고유한 이름의 임시 파일을 만들고 해당 파일의 전체 경로를 반환합니다.Creates a uniquely named, zero-byte temporary file on disk and returns the full path of that file.

GetTempPath()

현재 사용자의 임시 폴더 경로를 반환합니다.Returns the path of the current user's temporary folder.

HasExtension(ReadOnlySpan<Char>)

지정된 문자 범위로 표시되는 경로에 파일 이름 확장명이 포함되는지 확인합니다.Determines whether the path represented by the specified character span includes a file name extension.

HasExtension(String)

경로에 파일 확장명이 포함된지를 확인합니다.Determines whether a path includes a file name extension.

IsPathFullyQualified(ReadOnlySpan<Char>)

지정된 문자 범위로 표시되는 파일 경로가 특정 드라이브 또는 UNC 경로에 고정되었는지 여부를 나타내는 값을 반환합니다.Returns a value that indicates whether the file path represented by the specified character span is fixed to a specific drive or UNC path.

IsPathFullyQualified(String)

지정된 파일 경로가 특정 드라이브 또는 UNC 경로에 고정되었는지 여부를 나타내는 값을 반환합니다.Returns a value that indicates whether the specified file path is fixed to a specific drive or UNC path.

IsPathRooted(ReadOnlySpan<Char>)

파일 경로를 나타내는 지정된 문자 범위가 루트를 포함하는지 여부를 나타내는 값을 반환합니다.Returns a value that indicates whether the specified character span that represents a file path contains a root.

IsPathRooted(String)

지정된 경로 문자열에 루트가 포함되는지 여부를 나타내는 값을 반환합니다.Returns a value indicating whether the specified path string contains a root.

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

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

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

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

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

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

Join(String, String)

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

Join(String, String, String)

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

Join(String, String, String, String)

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

Join(String[])

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

TrimEndingDirectorySeparator(ReadOnlySpan<Char>)

지정된 경로의 루트를 벗어나는 후행 디렉터리 구분 기호를 하나 잘라냅니다.Trims one trailing directory separator beyond the root of the specified path.

TrimEndingDirectorySeparator(String)

지정된 경로의 루트를 벗어나는 후행 디렉터리 구분 기호를 하나 잘라냅니다.Trims one trailing directory separator beyond the root of the specified path.

TryJoin(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>, Span<Char>, Int32)

두 개의 경로 구성 요소를 미리 할당된 단일 문자 범위로 연결하려고 시도하고 작업이 성공했는지 여부를 나타내는 값을 반환합니다.Attempts to concatenate two path components to a single preallocated character span, and returns a value that indicates whether the operation succeeded.

TryJoin(ReadOnlySpan<Char>, ReadOnlySpan<Char>, Span<Char>, Int32)

두 개의 경로 구성 요소를 미리 할당된 단일 문자 범위로 연결하려고 시도하고 작업이 성공했는지 여부를 나타내는 값을 반환합니다.Attempts to concatenate two path components to a single preallocated character span, and returns a value that indicates whether the operation succeeded.

Applies to

See also