Obtener la ruta relativa de un archivo en C#
-
Obtener la ruta relativa de un archivo con la clase
Path
enC#
-
Obtener la ruta relativa de un archivo con el archivo
Resources.resx
enC#
Este tutorial discutirá métodos para obtener la ruta relativa de un archivo en C#.
Obtener la ruta relativa de un archivo con la clase Path
en C#
Para este tutorial, hablaré sobre la siguiente estructura de directorios.
/ MyProject / Bin Main.exe / Folder Img.jpg Main.cs
Cuando nuestro programa se ejecuta, lo hace desde el archivo Main.exe
dentro del directorio Bin
. Queremos escribir nuestro código comenzando desde o relativo al directorio Bin
. Queremos acceder al archivo Img.jpg
dentro del directorio Folder
. Este problema se puede solucionar fácilmente mediante uno de los siguientes métodos.
La clase Path
realiza operaciones en cadenas de variables que contienen rutas de archivo en C#. La función Path.GetDirectoryName()
obtiene la información sobre el directorio actual. Podemos pasar Assembly.GetExecutingAssembly().CodeBase
como parámetro a la función Path.GetDirectoryName()
para obtener información sobre el directorio de salida de nuestro proyecto.
var outPutDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase);
Entonces podemos combinar la ruta resultante con la ruta relativa corta a nuestro archivo Img.jpg
para crear una ruta relativa a nuestro archivo Img.jpg
.
var iconPath = Path.Combine(outPutDirectory, "Folder\\Img.jpg");
A continuación, podemos convertir esta nueva ruta en nuestra cadena de ruta relativa con la propiedad Uri.LocalPath
.
string icon_path = new Uri(iconPath).LocalPath;
El siguiente ejemplo de código nos muestra cómo podemos realizar todos los pasos mencionados anteriormente en C#.
var outPutDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase);
var iconPath = Path.Combine(outPutDirectory, "Folder\\Img.jpg");
string icon_path = new Uri(iconPath ).LocalPath;
La variable de cadena icon_path
es ahora la ruta relativa al archivo Img.jpg
y se puede utilizar para hacer referencia a la imagen durante la ejecución de nuestro código.
Obtener la ruta relativa de un archivo con el archivo Resources.resx
en C#
Cuando tenemos algunos recursos externos que queremos usar en nuestra aplicación, como un icono de imagen, tenemos que utilizar un archivo resources.resx
en C#. El archivo resources.resx
funciona como un registro de todos los recursos que utiliza nuestra aplicación. Una vez que hemos agregado un archivo resources.resx
en nuestro proyecto y hemos referenciado todos los recursos requeridos, podemos acceder fácilmente a todos los recursos con el comando Resources.Resource1
. El siguiente ejemplo de código nos muestra cómo podemos obtener la ruta relativa de un archivo con el archivo resources.resx
en C#.
using mynamespace.Properties var imgpath = Resources.img;
La variable imgpath
se puede utilizar como referencia al archivo Img.jpg
durante la ejecución de nuestro código en C#. Este método debería ser preferido sobre el método anterior porque es más fácil de entender, más simple de escribir y mantiene nuestro código organizado.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn