Path.GetFullPath Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Sobrecargas
GetFullPath(String) |
Devuelve la ruta de acceso absoluta para la cadena de ruta de acceso especificada. |
GetFullPath(String, String) |
Devuelve una ruta de acceso absoluta a partir de una ruta de acceso relativa y una ruta de acceso base completa. |
GetFullPath(String)
- Source:
- Path.Unix.cs
- Source:
- Path.Unix.cs
- Source:
- Path.Unix.cs
Devuelve la ruta de acceso absoluta para la cadena de ruta de acceso especificada.
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
Parámetros
- path
- String
El archivo o directorio para el que se va a obtener información de la ruta de acceso absoluta.
Devoluciones
Ubicación completa de path
, como "C:\MyFile.txt".
Excepciones
path
es una cadena de longitud cero, contiene solo espacios en blanco en sistemas Windows o contiene uno o varios de los caracteres no válidos definidos en GetInvalidPathChars().
o bien
El sistema no pudo recuperar la ruta de acceso absoluta.
El llamador no dispone del permiso requerido.
path
es null
.
Solo .NET Framework: path
contiene dos puntos (":") que no forma parte de un identificador de volumen (por ejemplo, "c:\").
La ruta de acceso especificada, el nombre de archivo o ambos superan la longitud máxima definida por el sistema.
Ejemplos
En el ejemplo siguiente se muestra el GetFullPath
método en una plataforma de escritorio basada en Windows.
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'
Comentarios
La ruta de acceso absoluta incluye toda la información necesaria para buscar un archivo o directorio en un sistema.
No es necesario que exista el archivo o directorio especificado por path
. Por ejemplo, si c:\temp\newdir es el directorio actual, al llamar GetFullPath
a en un nombre de archivo como test.txt devuelve c:\temp\newdir\test.txt. El archivo no necesita existir.
Importante
Si path
es una ruta de acceso relativa, esta sobrecarga devuelve una ruta de acceso completa que se puede basar en la unidad actual y en el directorio actual. La unidad actual y el directorio actual pueden cambiar en cualquier momento a medida que se ejecuta una aplicación. Como resultado, la ruta de acceso devuelta por esta sobrecarga no se puede determinar de antemano. Para devolver una ruta de acceso determinista, llame a la GetFullPath(String, String) sobrecarga. También puede llamar al IsPathFullyQualified método para determinar si una ruta de acceso es completa o relativa y, por tanto, si es necesaria una llamada a GetFullPath
.
Sin embargo, si path
existe, el autor de la llamada debe tener permiso para obtener información de ruta de acceso para path
. Tenga en cuenta que, a diferencia de la mayoría de los miembros de la Path clase, este método accede al sistema de archivos.
Este método usa el directorio actual y la información del volumen actual para calificar path
completamente . Si especifica un nombre de archivo solo en path
, GetFullPath
devuelve la ruta de acceso completa del directorio actual.
Si pasa un nombre de archivo corto, se expande a un nombre de archivo largo.
Si una ruta de acceso no contiene caracteres significativos, no es válido a menos que contenga uno o varios caracteres "." seguidos de cualquier número de espacios; a continuación, se analizará como "." o "..".
.NET Core 1.1 y versiones posteriores y .NET Framework 4.6.2 y versiones posteriores también admiten rutas de acceso que incluyen nombres de dispositivo, como "\\?\C:\".
Para obtener más información sobre los formatos de ruta de acceso de archivo en Windows, consulte Formatos de ruta de acceso de archivo en sistemas Windows. Para obtener una lista de tareas de E/S comunes, consulte Tareas de E/S comunes.
Consulte también
- Formatos de ruta de acceso de archivo en los sistemas Windows
- E/S de archivos y secuencias
- Cómo: Leer texto de un archivo
- Cómo: Escribir texto en un archivo
Se aplica a
GetFullPath(String, String)
- Source:
- Path.Unix.cs
- Source:
- Path.Unix.cs
- Source:
- Path.Unix.cs
Devuelve una ruta de acceso absoluta a partir de una ruta de acceso relativa y una ruta de acceso base completa.
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
Parámetros
- path
- String
Una ruta de acceso relativa para concatenar en basePath
.
- basePath
- String
El principio de una ruta de acceso completa.
Devoluciones
La ruta de acceso absoluta.
Excepciones
path
o basePath
es null
.
basePath
no es una ruta de acceso completa.
o bien
path
o basePath
contiene uno o varios de los caracteres no válidos definidos en GetInvalidPathChars().
Ejemplos
En el ejemplo siguiente se define una variable, basePath
, para representar el directorio actual de una aplicación. A continuación, lo pasa al GetFullPath
método para obtener una ruta de acceso completa al directorio de datos de la aplicación.
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
Comentarios
Si path
es una ruta de acceso vacía, el método devuelve basePath
. Si path
es una ruta de acceso completa, el método pasa path
al GetFullPath(String) método y devuelve el resultado.
Use este método para devolver una ruta de acceso determinista basada en un volumen especificado y un directorio rooteado cuando use rutas de acceso relativas. El uso de un predefinido basePath
en lugar de uno basado en el directorio de unidad actual protege contra las rutas de acceso de archivos no deseadas causadas por cambios inesperados en la unidad y el directorio actuales.