Obtenir le chemin relatif d'un fichier en C#

Muhammad Maisam Abbas 16 février 2024
  1. Obtenir le chemin relatif d’un fichier avec la classe Path en C#
  2. Obtenir le chemin relatif d’un fichier avec le fichier Resources.resx en C#
Obtenir le chemin relatif d'un fichier en C#

Ce didacticiel abordera les méthodes permettant d’obtenir le chemin relatif d’un fichier en C#.

Obtenir le chemin relatif d’un fichier avec la classe Path en C#

Pour ce tutoriel, je parlerai de la structure de répertoires suivante.

/ MyProject / Bin Main.exe / Folder Img.jpg Main.cs

Lorsque notre programme s’exécute, il le fait à partir du fichier Main.exe dans le répertoire Bin. Nous voulons écrire notre code à partir ou par rapport au répertoire Bin. Nous voulons accéder au fichier Img.jpg dans le répertoire Folder. Ce problème peut être facilement traité par l’une des méthodes suivantes.

La classe Path effectue des opérations sur des variables de chaînes contenant des chemins de fichiers en C#. La fonction Path.GetDirectoryName() récupère les informations sur le répertoire courant. Nous pouvons passer la fonction Assembly.GetExecutingAssembly().CodeBase comme paramètre à la fonction Path.GetDirectoryName() pour obtenir des informations sur le répertoire de sortie de notre projet.

var outPutDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase);

On peut alors combiner le chemin résultant avec le chemin relatif court vers notre fichier Img.jpg pour créer un chemin relatif vers notre fichier Img.jpg.

var iconPath = Path.Combine(outPutDirectory, "Folder\\Img.jpg");

Nous pouvons ensuite convertir ce nouveau chemin en notre chaîne de chemin relative avec la propriété Uri.LocalPath.

string icon_path = new Uri(iconPath).LocalPath;

L’exemple de code suivant nous montre comment nous pouvons effectuer toutes les étapes mentionnées ci-dessus 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 chaîne icon_path est maintenant le chemin relatif du fichier Img.jpg et peut être utilisée pour référencer l’image tout au long de l’exécution de notre code.

Obtenir le chemin relatif d’un fichier avec le fichier Resources.resx en C#

Lorsque nous avons des ressources externes que nous voulons utiliser dans notre application, comme une icône d’image, nous devons utiliser un fichier resources.resx en C#. Le fichier resources.resx fonctionne comme un enregistrement de toutes les ressources utilisées par notre application. Une fois que nous avons ajouté un fichier resources.resx dans notre projet et référencé toutes les ressources nécessaires, nous pouvons facilement accéder à toutes les ressources avec la commande Resources.Resource1. L’exemple de code suivant nous montre comment obtenir le chemin relatif d’un fichier avec le fichier resources.resx en C#.

using mynamespace.Properties var imgpath = Resources.img;

La variable imgpath peut être utilisée comme référence au fichier Img.jpg tout au long de l’exécution de notre code en C#. Cette méthode doit être préférée à la méthode précédente car elle est plus facile à comprendre, plus simple à écrire et maintient notre code organisé.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

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

Article connexe - Csharp Path

Article connexe - Csharp File