Path.GetFullPath メソッド

定義

オーバーロード

GetFullPath(String)

指定したパス文字列の絶対パスを返します。

GetFullPath(String, String)

相対パスと完全修飾ベース パスから絶対パスを返します。

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

"C:\MyFile.txt" などの完全修飾場所path

例外

pathは長さ 0 の文字列で、Windows システムの空白のみを含むか、または 1 つ以上の無効な文字が定義されていますGetInvalidPathChars()

または

システムが絶対パスを取得できませんでした。

呼び出し元に、必要なアクセス許可がありません。

pathnullです。

path に、ボリュームの識別子 ("C:\") の一部ではないコロン (:) が含まれています。

指定したパス、ファイル名、またはその両方がシステム定義の最大長を超えています。

次の例では、Windows ベースのデスクトップ プラットフォームでのメソッドを示しますGetFullPath

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'

注釈

絶対パスには、システム上のファイルまたはディレクトリを検索するために必要なすべての情報が含まれます。

指定された path ファイルまたはディレクトリが存在する必要はありません。 たとえば、c:\tempnewdir\ が現在のディレクトリの場合、test.txt などのファイル名を呼び出すと 、c:\tempnewdir\\test.txt が返されます。GetFullPath ファイルが存在する必要はありません。

重要

相対パスの場合 path 、このオーバーロードは、現在のドライブと現在のディレクトリに基づく完全修飾パスを返します。 現在のドライブと現在のディレクトリは、アプリケーションの実行時にいつでも変更できます。 その結果、このオーバーロードによって返されるパスを事前に決定することはできません。 確定的なパスを返すには、オーバーロードを GetFullPath(String, String) 呼び出します。 また、メソッドを IsPathFullyQualified 呼び出して、パスが完全修飾パスか相対パスか、したがって呼び出し GetFullPath が必要かどうかを判断することもできます。

ただし、存在する場合 path 、呼び出し元にはパス情報 pathを取得するためのアクセス許可が必要です。 クラスの Path ほとんどのメンバーとは異なり、このメソッドはファイル システムにアクセスします。

このメソッドは、現在のディレクトリと現在のボリューム情報を使用して完全修飾します path。 ファイル名のみを指定した場合は pathGetFullPath 現在のディレクトリの完全修飾パスを返します。

短いファイル名を渡すと、長いファイル名に展開されます。

パスに有効な文字が含まれていない場合は、1 つ以上の "." 文字の後に任意の数のスペースが続く場合を除き、無効です。その後、"." または ".." として解析されます。

.NET Core 1.1 以降のバージョンと.NET Framework 4.6.2 以降のバージョンでは、"\\?\C:\".

Windowsのファイル パス形式の詳細については、Windows システムのファイル パス形式を参照してください。 共通 I/O タスクの一覧は、 共通 I/O タスク を参照してください。

こちらもご覧ください

適用対象

GetFullPath(String, String)

相対パスと完全修飾ベース パスから絶対パスを返します。

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

basePath に連結する相対パス。

basePath
String

完全修飾パスの先頭。

戻り値

String

絶対パス。

例外

path または basePathnull です。

basePath が完全修飾パスではありません。

または

path または basePath が、GetInvalidPathChars() で定義されている無効な文字を 1 つ以上含んでいます。

次の例では、 basePathアプリケーションの現在のディレクトリを表す変数を定義します。 次に、アプリケーションの GetFullPath データ ディレクトリへの完全修飾パスを取得するためにメソッドに渡します。

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

注釈

空のパスの場合path、メソッドは .basePath 完全修飾パスの場合path、メソッドはメソッドにGetFullPath(String)pathされ、結果が返されます。

相対パスを使用している場合は、このメソッドを使用して、指定したボリュームとルートディレクトリに基づいて決定論的パスを返します。 現在のドライブ ディレクトリに基づく定義済みではなく、定義済みの basePath ファイル パスを使用すると、現在のドライブとディレクトリの予期しない変更によって発生する不要なファイル パスから保護されます。

適用対象