Path.GetFullPath Path.GetFullPath Path.GetFullPath Path.GetFullPath Method

定義

オーバーロード

GetFullPath(String) GetFullPath(String) GetFullPath(String) GetFullPath(String)

指定したパス文字列の絶対パスを返します。Returns the absolute path for the specified path string.

GetFullPath(String, String) GetFullPath(String, String) GetFullPath(String, String) GetFullPath(String, String)

完全修飾ベース パスと相対パスから絶対パスを返します。Returns an absolute path from a fully qualified base path and a relative path.

GetFullPath(String) GetFullPath(String) GetFullPath(String) 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

パラメーター

path
String String String String

絶対パス情報を取得する対象のファイルまたはディレクトリ。The file or directory for which to obtain absolute path information.

戻り値

"C:\MyFile.txt" など、path の完全修飾位置。The fully qualified location of path, such as "C:\MyFile.txt".

例外

path が、長さが 0 の文字列であるか、空白しか含んでいないか、または GetInvalidPathChars() で定義されている無効な文字を 1 つ以上含んでいます。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 に、ボリュームの識別子 ("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.

次の例は、 GetFullPath Windows ベースのデスクトッププラットフォームでのメソッドを示しています。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'

注釈

絶対パスには、システム上のファイルまたはディレクトリを検索するために必要なすべての情報が含まれています。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が現在のディレクトリである場合、 GetFullPath test.txtなどのファイル名でを呼び出すと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.

重要

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.

パスに有意な文字が含まれていない場合、1つ以上の "." 文字の後に任意の数の空白が続くと無効になります。次に、"." または ".." として解析されます。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.

セキュリティ

FileIOPermission
パスへのアクセスに使用します。for access to the path.

こちらもご覧ください

GetFullPath(String, String) GetFullPath(String, String) GetFullPath(String, String) GetFullPath(String, String)

完全修飾ベース パスと相対パスから絶対パスを返します。Returns an absolute path from a fully qualified base path and a relative 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

パラメーター

path
String String String String

basePath に連結する相対パス。A relative path to concatenate to basePath.

basePath
String String String String

完全修飾パスの先頭。The beginning of a fully qualified path.

戻り値

絶対パス。The absolute path.

例外

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.

注釈

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.

Example

次の例では、アプリケーション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

適用対象