在 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