为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 C# 中将正确的通用路径传递给文件

如何在 C# 中将正确的通用路径传递给文件

C#
杨魅力 2021-06-04 22:23:25
这是我第一次使用 C#(我之前用 Java 写过)。我试图通过这种方式获取位于目录“Resources”中的json文件“movies-filtered.json”的路径:string fileName = "movies-filtered.json";string path = Path.Combine(Environment.CurrentDirectory, "..\\..\\Resources\\", fileName);Console.WriteLine(path);Console.WriteLine("Hold the application: ");string Number2 = Console.ReadLine();但是这个 Console.WriteLine(path) 的输出是:C:\Users\xxxxxx\Movie_Library_C#\MovieLibrary\MovieLibrary\bin\Debug....\Resources\movies-filtered.json“xxxxxx”隐藏了路径的某些部分。我试图退出“bin/Debug”目录,然后从“MovieLibrary”转到“Resources”目录,那里有我想要获取的“movies-filtered.json”文件。但它不是那样工作的。谁能帮我解决这个问题?我将不胜感激。
查看完整描述

3 回答

?
哔哔one

TA贡献1854条经验 获得超8个赞

为了加载这样的文件,你需要做两件事......


首先,单击该文件并确保将 Build Action(在属性面板中)设置为Copy Always或Copy if Newer。这将确保将您的 .json 文件复制到具有指定文件夹结构的构建目录。


接下来是构建路径,您应该(需要)使用Path.Combine,但我建议不要使用Environment.CurrentDirectory. 问题在于它返回当前工作目录,它可能是也可能不是您的可执行文件的路径。


要获取可执行文件的文件夹,您可以执行以下操作:


var exeFolder = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);

然后将其与您的资源位置结合以获取完整路径:


var jsonFile = Path.Combine(exeFolder, "Resources", "Filename.json");


查看完整回答
反对 回复 2021-06-05
  • 3 回答
  • 0 关注
  • 176 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信