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

这是我第一次使用 C#(我之前用 Java 写过)。我试图通过这种方式获取位于目录“Resources”中的json文件“movies-filtered.json”的路径:

http://img2.mukewang.com/60bb2b7300018f6118910538.jpg

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”文件。但它不是那样工作的。


谁能帮我解决这个问题?我将不胜感激。


杨魅力
浏览 177回答 3
3回答

哔哔one

为了加载这样的文件,你需要做两件事......首先,单击该文件并确保将 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");
打开App,查看更多内容
随时随地看视频慕课网APP