在 C# 中獲取檔案的相對路徑

Muhammad Maisam Abbas 2023年1月30日 2021年4月29日
  1. 使用 C# 中的 Path 類獲取檔案的相對路徑
  2. 使用 C# 中的 Resources.resx 檔案獲取檔案的相對路徑
在 C# 中獲取檔案的相對路徑

本教程將討論在 C# 中獲取檔案相對路徑的方法。

使用 C# 中的 Path 類獲取檔案的相對路徑

對於本教程,我將討論以下目錄結構。

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

當我們的程式執行時,它是從 Bin 目錄中的 Main.exe 檔案執行的。我們要從 Bin 目錄開始或相對於 Bin 目錄編寫我們的程式碼。我們要訪問資料夾目錄中的 Img.jpg 檔案。通過以下方法之一可以輕鬆解決此問題。

Path對包含 C# 中檔案路徑的字串變數執行操作。Path.GetDirectoryName() 函式獲取有關當前目錄的資訊。我們可以將 Assembly.GetExecutingAssembly().CodeBase 作為引數傳遞給 Path.GetDirectoryName() 函式,以獲取有關專案輸出目錄的資訊。

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

然後,我們可以將結果路徑與到我們的 Img.jpg 檔案的短相對路徑結合起來,以建立到我們的 Img.jpg 檔案的相對路徑。

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

然後,我們可以使用 Uri.LocalPath 屬性將新路徑轉換為相對路徑字串。

string icon_path = new Uri(iconPath ).LocalPath;

以下程式碼示例向我們展示瞭如何在 C# 中執行所有上述步驟。

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

字串變數 icon_path 現在是檔案 Img.jpg 的相對路徑,在我們執行程式碼的整個過程中都可以使用它來引用影象。

使用 C# 中的 Resources.resx 檔案獲取檔案的相對路徑

當我們有一些要在應用程式中使用的外部資源(例如影象圖示)時,我們必須在 C# 中使用 resources.resx 檔案resources.resx 檔案記錄了我們的應用程式使用的所有資源。一旦在專案中新增了 resources.resx 檔案並引用了所有必需的資源,我們就可以使用 Resources.Resource1 命令輕鬆訪問所有資源。以下程式碼示例向我們展示瞭如何使用 C# 中的 resources.resx 檔案獲取檔案的相對路徑。

using mynamespace.Properties
var imgpath = Resources.img;

在我們的 C# 程式碼執行過程中,imgpath 變數可以用作對 Img.jpg 檔案的引用。與以前的方法相比,此方法應該更可取,因為它更易於理解,更易於編寫,並使我們的程式碼井井有條。

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

相關文章 - Csharp Path

相關文章 - Csharp File