在 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