Relativen Pfad einer Datei abrufen in C#

Muhammad Maisam Abbas 16 Februar 2024
  1. Abrufen des relativen Pfads einer Datei mit der Klasse Path in C#
  2. Relativen Pfad einer Datei mit der Datei Resources.resx in C# abrufen
Relativen Pfad einer Datei abrufen in C#

In diesem Lernprogramm werden Methoden zum Abrufen des relativen Pfads einer Datei in C# erläutert.

Abrufen des relativen Pfads einer Datei mit der Klasse Path in C#

In diesem Tutorial werde ich über die folgende Verzeichnisstruktur sprechen.

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

Wenn unser Programm ausgeführt wird, geschieht dies aus der Datei Main.exe im Verzeichnis Bin. Wir möchten unseren Code beginnend mit oder relativ zum Verzeichnis Bin schreiben. Wir möchten auf die Datei Img.jpg im Verzeichnis Folder zugreifen. Dieses Problem kann leicht mit einer der folgenden Methoden gelöst werden.

Die Klasse Path führt Operationen an Zeichenkettenvariablen aus, die Dateipfade in C# enthalten. Die Funktion Path.GetDirectoryName() ruft die Informationen zum aktuellen Verzeichnis ab. Wir können die Funktion Assembly.GetExecutingAssembly().CodeBase als Parameter an die Funktion Path.GetDirectoryName() übergeben, um Informationen über das Ausgabeverzeichnis unseres Projekts abzurufen.

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

Wir können dann den resultierenden Pfad mit dem kurzen relativen Pfad zu unserer Datei Img.jpg kombinieren, um einen relativen Pfad zu unserer Datei Img.jpg zu erstellen.

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

Wir können diesen neuen Pfad dann mit der Eigenschaft Uri.LocalPath in unsere relative PfadZeichenkette konvertieren.

string icon_path = new Uri(iconPath).LocalPath;

Das folgende Codebeispiel zeigt uns, wie wir alle oben genannten Schritte in C# ausführen können.

var outPutDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase);
var iconPath = Path.Combine(outPutDirectory, "Folder\\Img.jpg");
string icon_path = new Uri(iconPath ).LocalPath;

Die Zeichenkettenvariable icon_path ist jetzt der relative Pfad zur Datei Img.jpg und kann verwendet werden, um das Bild während der Ausführung unseres Codes zu referenzieren.

Relativen Pfad einer Datei mit der Datei Resources.resx in C# abrufen

Wenn wir einige externe Ressourcen haben, die wir in unserer Anwendung verwenden möchten, z. B. ein Bildsymbol, müssen wir eine resources.resx-Datei in C# verwenden. Die Datei resources.resx zeichnet alle von unserer Anwendung verwendeten Ressourcen auf. Nachdem wir in unserem Projekt eine Datei resources.resx hinzugefügt und auf alle erforderlichen Ressourcen verwiesen haben, können wir mit dem Befehl Resources.Resource1 problemlos auf alle Ressourcen zugreifen. Das folgende Codebeispiel zeigt uns, wie wir den relativen Pfad einer Datei mit der Datei resources.resx in C# ermitteln können.

using mynamespace.Properties var imgpath = Resources.img;

Die Variable imgpath kann während der Ausführung unseres Codes in C# als Referenz auf die Datei Img.jpg verwendet werden. Diese Methode sollte der vorherigen Methode vorgezogen werden, da sie leichter zu verstehen, einfacher zu schreiben und unser Code organisiert bleibt.

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

Verwandter Artikel - Csharp Path

Verwandter Artikel - Csharp File