在 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
檔案的引用。與以前的方法相比,此方法應該更可取,因為它更易於理解,更易於編寫,並使我們的程式碼井井有條。
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