c# - Winforms 中的相对路径

标签 c# winforms relative-path

C# 中的相对路径对我来说有点古怪。在一个案例中,我将一组 Texture2d 对象处理到我的应用程序,它获取文件名并使用它来定位文件并将纹理加载到 Image 对象中。然后,我从存储在类文件中的相对路径加载图像,并使用需要相对于 Content/gfx 的相对路径。但是如果我不加载这些纹理,这些相对路径将会失败。我如何保证我的 rel 路径不会失败?在 Web 工作中,所有 rel 路径都相对于我们正在处理的文件所在的文件夹,我可以这样设置它并使所有 rel 路径指向我的应用程序所在的根文件夹吗?

最佳答案

我建议首先不要使用相对路径。

使用Path.Combine把你的相对路径变成绝对路径。例如,您可以使用它来获取启动 EXE 的完整路径:

string exeFile = (new System.Uri(Assembly.GetEntryAssembly().CodeBase)).AbsolutePath;

一旦你有了它,你就可以得到它的目录:

string exeDir = Path.GetDirectoryName(exeFile);

并将您的相对路径转换为绝对路径:

string fullPath = Path.Combine(exeDir, "..\\..\\Images\\Texture.dds");

这比尝试使用相对路径要可靠得多。

关于c# - Winforms 中的相对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1019641/

相关文章:

c# - 未从 appsettings 文件应用 ASP.Net Core 2 中的 Serilog JsonFormatter

c# - 重试使用 Azure Batch 删除池或作业吗?

c# - C# 应用程序中未处理的异常是否会使应用程序崩溃?

c# - 如何使用随机在 pictureBox1 中心 + 10 中绘制点?

c# - 检查文本文件是否在记事本中打开

c# - 从 xml 文件加载图像数据

c# - 鼠标双击仅在右键单击时触发

ms-access - 将链接表的绝对路径更改为相对路径

jquery - jquery中的绝对路径和相对路径

php - 为什么 simplexml_load_file 相对于主机文件不起作用?