Path.GetFullPath Method

Definition

Overloads

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.

GetFullPath(String)

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

public:
 static System::String ^ GetFullPath(System::String ^ path);
public static string GetFullPath (string path);
static member GetFullPath : string -> string
Public Shared Function GetFullPath (path As String) As String

Parameters

path
String

절대 경로 정보를 가져올 파일 또는 디렉터리입니다.The file or directory for which to obtain absolute path information.

Returns

String

"C:\MyFile.txt"처럼 path의 정규화된 위치입니다.The fully qualified location of path, such as "C:\MyFile.txt".

Exceptions

path가 길이가 0인 문자열이거나 공백만 포함하거나 GetInvalidPathChars()에 정의된 하나 이상의 잘못된 문자를 포함하는 경우path is a zero-length string, contains only white space, or contains one or more of the invalid characters defined in GetInvalidPathChars().

또는-or- 절대 경로를 검색할 수 없는 경우The system could not retrieve the absolute path.

호출자에게 필요한 사용 권한이 없습니다.The caller does not have the required permissions.

path이(가) null인 경우path is null.

path에 볼륨 식별자(예: "c:\")의 일부가 아닌 콜론(":")이 포함됩니다.path contains a colon (":") that is not part of a volume identifier (for example, "c:\").

지정된 경로, 파일 이름 또는 둘 다가 시스템에서 정의한 최대 길이를 초과합니다.The specified path, file name, or both exceed the system-defined maximum length.

Examples

다음 예제에서는 Windows 기반 데스크톱 플랫폼의 GetFullPath 메서드를 보여 줍니다.The following example demonstrates the GetFullPath method on a Windows-based desktop platform.

String^ fileName = "myfile.ext";
String^ path = "\\mydir\\";
String^ fullPath;
fullPath = Path::GetFullPath( path );
Console::WriteLine( "GetFullPath('{0}') returns '{1}'", path, fullPath );
fullPath = Path::GetFullPath( fileName );
Console::WriteLine( "GetFullPath('{0}') returns '{1}'", fileName, fullPath );

// Output is based on your current directory, except
// in the last case, where it is based on the root drive
// GetFullPath('mydir') returns 'C:\temp\Demo\mydir'
// GetFullPath('myfile.ext') returns 'C:\temp\Demo\myfile.ext'
// GetFullPath('\mydir') returns 'C:\mydir'
string fileName = "myfile.ext";
string path1 = @"mydir";
string path2 = @"\mydir";
string fullPath;

fullPath = Path.GetFullPath(path1);
Console.WriteLine("GetFullPath('{0}') returns '{1}'",
    path1, fullPath);

fullPath = Path.GetFullPath(fileName);
Console.WriteLine("GetFullPath('{0}') returns '{1}'",
    fileName, fullPath);

fullPath = Path.GetFullPath(path2);
Console.WriteLine("GetFullPath('{0}') returns '{1}'",
    path2, fullPath);

// Output is based on your current directory, except
// in the last case, where it is based on the root drive
// GetFullPath('mydir') returns 'C:\temp\Demo\mydir'
// GetFullPath('myfile.ext') returns 'C:\temp\Demo\myfile.ext'
// GetFullPath('\mydir') returns 'C:\mydir'
Dim fileName As string = "myfile.ext"
Dim path1 As string = "mydir"
Dim path2 As string = "\mydir"
Dim fullPath As string

fullPath = Path.GetFullPath(path1)
Console.WriteLine("GetFullPath('{0}') returns '{1}'", _
    path1, fullPath)

fullPath = Path.GetFullPath(fileName)
Console.WriteLine("GetFullPath('{0}') returns '{1}'", _
    fileName, fullPath)

fullPath = Path.GetFullPath(path2)
Console.WriteLine("GetFullPath('{0}') returns '{1}'", _
    path2, fullPath)

' Output is based on your current directory, except
' in the last case, where it is based on the root drive
' GetFullPath('mydir') returns 'C:\temp\Demo\mydir'
' GetFullPath('myfile.ext') returns 'C:\temp\Demo\myfile.ext'
' GetFullPath('\mydir') returns 'C:\mydir'

Remarks

시스템에서 파일 또는 디렉터리를 찾는 데 필요한 모든 정보를 포함 하는 절대 경로입니다.The absolute path includes all information required to locate a file or directory on a system.

path에서 지정 된 파일 또는 디렉터리가 없어도 됩니다.The file or directory specified by path is not required to exist. 예를 들어 c:\temp\newdir 가 현재 디렉터리인 경우 test.txt 와 같은 파일 이름에 대 한 GetFullPath를 호출 하면 c:\temp\newdir\test.txt이 반환 됩니다.For example, if c:\temp\newdir is the current directory, calling GetFullPath on a file name such as test.txt returns c:\temp\newdir\test.txt. 파일이 필요 합니다.The file need not exist.

Important

path 상대 경로인 경우이 오버 로드는 현재 드라이브 및 현재 디렉터리를 기반으로 할 수 있는 정규화 된 경로를 반환 합니다.If path is a relative path, this overload returns a fully qualified path that can be based on the current drive and current directory. 현재 드라이브와 현재 디렉터리는 응용 프로그램이 실행 될 때 언제 든 지 변경 될 수 있습니다.The current drive and current directory can change at any time as an application executes. 따라서이 오버 로드에서 반환 된 경로는 미리 확인할 수 없습니다.As a result, the path returned by this overload cannot be determined in advance. 결정적 경로를 반환 하려면 GetFullPath(String, String) 오버 로드를 호출 합니다.To return a deterministic path, call the GetFullPath(String, String) overload. IsPathFullyQualified 메서드를 호출 하 여 경로가 정규화 되었는지 아니면 상대 경로 인지 확인 하 여 GetFullPath에 대 한 호출이 필요한 지 여부를 확인할 수도 있습니다.You can also call the IsPathFullyQualified method to determine whether a path is fully qualified or relative and therefore whether a call to GetFullPath is necessary.

그러나 path 있는 경우 호출자는 path에 대 한 경로 정보를 가져올 수 있는 권한이 있어야 합니다.However, if path does exist, the caller must have permission to obtain path information for path. Path 클래스의 멤버와는 달리이 메서드는 파일 시스템에 액세스 합니다.Note that unlike most members of the Path class, this method accesses the file system.

이 메서드는 현재 디렉터리 및 현재 볼륨 정보를 사용 하 여 path정규화 합니다.This method uses the current directory and current volume information to fully qualify path. path에만 파일 이름을 지정 하는 경우 GetFullPath는 현재 디렉터리의 정규화 된 경로를 반환 합니다.If you specify a file name only in path, GetFullPath returns the fully qualified path of the current directory.

짧은 파일 이름에 전달 하는 경우 긴 파일 이름으로 확장 됩니다.If you pass in a short file name, it is expanded to a long file name.

경로에 유효 하지 않은 문자가 포함 되어 있는 경우 하나 이상의 "." 문자 뒤에 공백 수가 하나 이상 포함 되어 있지 않으면 유효 하지 않습니다. 그런 다음 "." 또는 ".."로 구문 분석 됩니다.If a path contains no significant characters, it is invalid unless it contains one or more "." characters followed by any number of spaces; then it will be parsed as either "." or "..".

.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 paths that include device names, such as "\?\C:".

Windows의 파일 경로 형식에 대 한 자세한 내용은 windows 시스템의 파일 경로 형식을 참조 하세요.For more information on file path formats on Windows, see File path formats on Windows systems. 일반적인 i/o 작업 목록은 일반적인 I/o 작업을 참조 하세요.For a list of common I/O tasks, see Common I/O Tasks.

See also

GetFullPath(String, String)

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

public:
 static System::String ^ GetFullPath(System::String ^ path, System::String ^ basePath);
public static string GetFullPath (string path, string basePath);
static member GetFullPath : string * string -> string
Public Shared Function GetFullPath (path As String, basePath As String) As String

Parameters

path
String

basePath에 연결할 상대 경로입니다.A relative path to concatenate to basePath.

basePath
String

정규화된 경로의 시작입니다.The beginning of a fully qualified path.

Returns

String

절대 경로입니다.The absolute path.

Exceptions

path 또는 basePathnull인 경우path or basePath is null.

basePath는 정규화된 경로가 아닙니다.basePath is not a fully qualified path.

또는-or-

path 또는 basePath에 U+0000과 같은 잘못된 경로 문자가 포함되어 있습니다.path or basePath contains invalid path characters, such as U+0000.

Examples

다음 예제에서는 basePath변수를 정의 하 여 응용 프로그램의 현재 디렉터리를 나타냅니다.The following example defines a variable, basePath, to represent an application's current directory. 그런 다음 GetFullPath 메서드에 전달 하 여 응용 프로그램의 데이터 디렉터리에 대 한 정규화 된 경로를 가져옵니다.It then passes it to the GetFullPath method to get a fully qualified path to the application's data directory.

using System;
using System.IO;

class Program
{
    static void Main()
    {
        string basePath = Environment.CurrentDirectory;
        string relativePath = "./data/output.xml";
 
        // Unexpectedly change the current directory.
        Environment.CurrentDirectory = "C:/Users/Public/Documents/";
        
        string fullPath = Path.GetFullPath(relativePath, basePath);
        Console.WriteLine($"Current directory:\n   {Environment.CurrentDirectory}");
        Console.WriteLine($"Fully qualified path:\n   {fullPath}");
    }
}
// The example displays the following output:
//   Current directory:
//      C:\Users\Public\Documents
//   Fully qualified path:
//      C:\Utilities\data\output.xml
Imports System.IO

Module Program
    Public Sub Main()
        Dim basePath As String = Environment.CurrentDirectory
        Dim relativePath As String = "./data/output.xml"
 
        ' Unexpectedly change the current directory.
        Environment.CurrentDirectory = "C:/Users/Public/Documents/"
        
        Dim fullPath As String = Path.GetFullPath(relativePath, basePath)
        Console.WriteLine($"Current directory:\n   {Environment.CurrentDirectory}")
        Console.WriteLine($"Fully qualified path:\n   {fullPath}")
    End Sub
End Module
' The example displays the following output:
'   Current directory:
'      C:\Users\Public\Documents
'   Fully qualified path:
'      C:\Utilities\data\output.xml

Remarks

path 빈 경로인 경우 메서드는 basePath반환 합니다.If path is an empty path, the method returns basePath. path 정규화 된 경로인 경우 메서드는 GetFullPath(String) 메서드에 path를 전달 하 고 결과를 반환 합니다.If path is a fully qualified path, the method passes path to the GetFullPath(String) method and returns the result.

상대 경로를 사용 하는 경우이 메서드를 사용 하 여 지정 된 볼륨 및 루 팅 된 디렉터리를 기반으로 하는 결정적 경로를 반환 합니다.Use this method to return a deterministic path based on a specified volume and rooted directory when you're using relative paths. 현재 드라이브 디렉터리를 기반으로 하는 미리 정의 된 basePath를 사용 하면 현재 드라이브 및 디렉터리에서 예기치 않은 변경으로 인해 발생 하는 원치 않는 파일 경로를 보호할 것입니다.Using a predefined basePath rather than one based on the current drive directory guards against unwanted file paths caused by unexpected changes in the current drive and directory.

Applies to