c# - obtener - ¿Cómo obtengo el directorio de la ruta completa de un archivo?
obtener ruta de un archivo vb net (12)
En caso de que alguien más lo necesite, lo que usé para mi ruta relativa fue:
string rootPath = "MyRootDir/MyFolder1/MyFolder2/myFile.pdf";
while (!string.IsNullOrWhiteSpace(Path.GetDirectoryName(rootPath)))
{
rootPath = Path.GetDirectoryName(rootPath);
}
Console.WriteLine(rootPath); //Will print: "MyRootDir"
¿Cuál es la forma más sencilla de obtener el directorio en el que se encuentra un archivo? Estoy usando esto para establecer un directorio de trabajo.
string filename = @"C:/MyDirectory/MyFile.bat";
En este ejemplo, debería obtener "C: / MyDirectory".
En mi caso, necesitaba encontrar el nombre del directorio de una ruta completa (de un directorio), así que simplemente lo hice:
string newPath = Path.GetFullPath(openFileDialog1.FileName));
Primero, tienes que usar el espacio de nombres System.IO. Entonces;
var dirName = path.Split(''//').Last();
o
string filename = @"C:/MyDirectory/MyFile.bat";
string newPath = Path.GetFullPath(fileName);
Puede obtener la ruta de aplicación actual usando:
string AssemblyPath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location).ToString();
¡Buena suerte!
Puede usar Path.GetDirectoryName
y simplemente pasar el nombre del archivo.
Puede usar Path.GetFullPath
para la mayoría de los casos. Pero si desea obtener la ruta también en el caso de que el nombre del archivo esté relativamente ubicado, puede utilizar el método genérico siguiente:
string GetPath(string filePath)
{
return Path.GetDirectoryName(Path.GetFullPath(filePath))
}
Por ejemplo:
GetPath("C:/Temp/Filename.txt")
devuelve "C:/Temp/"
GetPath("Filename.txt")
devuelve el current working directory
como "C:/Temp/"
Puede usar System.IO.Path.GetDirectory(filename)
, o convertir la ruta en FileInfo
, y usar FileInfo.Directory
.
Si está haciendo otras cosas con la ruta, FileInfo
puede tener ventajas.
Si definitivamente tienes una ruta absoluta, usa Path.GetDirectoryName(path)
.
Si solo puede obtener un nombre relativo, use la new FileInfo(path).Directory.FullName
.
Tenga en cuenta que Path
y FileInfo
se encuentran en el espacio de nombres System.IO
.
Si está trabajando con un objeto FileInfo
, entonces hay una manera fácil de extraer una representación de string
de la ruta completa del directorio a través de la propiedad DirectoryName
.
Descripción de la propiedad FileInfo.DirectoryName
través de MSDN:
Obtiene una cadena que representa la ruta completa del directorio.
Uso de la muestra:
string filename = @"C:/MyDirectory/MyFile.bat";
FileInfo fileInfo = new FileInfo(filename);
string directoryFullPath = fileInfo.DirectoryName; // contains "C:/MyDirectory"
Enlace a la documentación de MSDN .
Utilice el código mencionado a continuación para obtener la ruta de la carpeta
Path.GetDirectoryName(filename);
Esto devolverá "C: / MyDirectory" en su caso
Path.GetDirectoryName(filename);
System.IO.Path.GetDirectoryName(filename)