Path.GetFullPath Metod

Definition

Överlagringar

Name Description
GetFullPath(String, String)

Returnerar en absolut sökväg från en relativ sökväg och en fullständigt kvalificerad bassökväg.

GetFullPath(String)

Returnerar den absoluta sökvägen för den angivna sökvägssträngen.

GetFullPath(String, String)

Returnerar en absolut sökväg från en relativ sökväg och en fullständigt kvalificerad bassökväg.

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

Parametrar

path
String

En relativ sökväg för att sammanfoga till basePath.

basePath
String

Början på en fullständigt kvalificerad sökväg.

Returer

Den absoluta sökvägen.

Undantag

path eller basePath är null.

basePath är inte en fullständigt kvalificerad sökväg.

-eller-

path eller basePath innehåller ett eller flera av de ogiltiga tecken som definierats i GetInvalidPathChars().

Exempel

I följande exempel definieras en variabel, basePath, som representerar ett programs aktuella katalog. Den skickar den sedan till GetFullPath metoden för att få en fullständigt kvalificerad sökväg till programmets datakatalog.

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

Kommentarer

Om path är en tom sökväg returnerar basePathmetoden . Om path är en fullständigt kvalificerad sökväg skickas path metoden till GetFullPath(String) metoden och returnerar resultatet.

Använd den här metoden för att returnera en deterministisk sökväg baserat på en angiven volym och rotad katalog när du använder relativa sökvägar. Att använda en fördefinierad basePath i stället för en baserad på den aktuella enhetskatalogen skyddar mot oönskade filsökvägar som orsakas av oväntade ändringar i den aktuella enheten och katalogen.

Gäller för

GetFullPath(String)

Returnerar den absoluta sökvägen för den angivna sökvägssträngen.

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

Parametrar

path
String

Den fil eller katalog som du vill hämta absolut sökvägsinformation för.

Returer

Den fullständigt kvalificerade platsen pathför , till exempel "C:\MyFile.txt".

Undantag

path är en sträng med noll längd, innehåller endast tomt utrymme i Windows system eller innehåller ett eller flera av de ogiltiga tecken som definierats i GetInvalidPathChars().

-eller-

Det gick inte att hämta den absoluta sökvägen.

Anroparen har inte de behörigheter som krävs.

path är null.

endast .NET Framework: path innehåller ett kolon (":") som inte ingår i en volymidentifierare (till exempel "c:\").

Den angivna sökvägen, filnamnet eller båda överskrider den systemdefinierade maximala längden.

Exempel

I följande exempel visas metoden GetFullPath på en Windows-baserad skrivbordsplattform.

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'

Kommentarer

Den absoluta sökvägen innehåller all information som krävs för att hitta en fil eller katalog i ett system.

Den fil eller katalog som anges av path krävs inte för att finnas. Om c:\temp\newdir till exempel är den aktuella katalogen, returnerar anropet GetFullPath till ett filnamn som test.txtc:\temp\newdir\test.txt. Filen behöver inte finnas.

Important

Om path är en relativ sökväg returnerar den här överlagringen en fullständigt kvalificerad sökväg som kan baseras på den aktuella enheten och den aktuella katalogen. Den aktuella enheten och den aktuella katalogen kan ändras när som helst när ett program körs. Det innebär att sökvägen som returneras av den här överlagringen inte kan fastställas i förväg. Om du vill returnera en deterministisk sökväg anropar du överlagringen GetFullPath(String, String) . Du kan också anropa IsPathFullyQualified metoden för att avgöra om en sökväg är fullständigt kvalificerad eller relativ och därför om ett anrop till GetFullPath är nödvändigt.

Men om path det finns måste anroparen ha behörighet att hämta sökvägsinformation för path. Observera att till skillnad från de flesta medlemmar i Path klassen kommer den här metoden åt filsystemet.

Den här metoden använder den aktuella katalogen och aktuell volyminformation för att fullständigt kvalificera path. Om du endast anger ett filnamn i pathGetFullPath returnerar den fullständigt kvalificerade sökvägen för den aktuella katalogen.

Om du skickar ett kort filnamn expanderas det till ett långt filnamn.

Om en sökväg inte innehåller några signifikanta tecken är den ogiltig om den inte innehåller ett eller flera "." tecken följt av valfritt antal blanksteg. sedan parsas den som antingen "." eller ".".

.NET Core 1.1 och senare versioner och .NET Framework 4.6.2 och senare versioner stöder även sökvägar som innehåller enhetsnamn, till exempel "\\?\C:\".

Mer information om filsökvägsformat på Windows finns i sökvägsformaten File på Windows system. En lista över vanliga I/O-uppgifter finns i Vanliga I/O-uppgifter.

Se även

Gäller för