这是我第一次使用 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");
- 3 回答
- 0 关注
- 176 浏览
添加回答
举报
0/150
提交
取消