C# 如何获取我的项目路径?

C# 如何获取我的项目路径?,c#,forms,path,C#,Forms,Path,可能重复: 你好,我有个问题: 如何获取我的根项目路径?我的意思是,项目中的第一个文件夹是解决方案所在的文件夹。 我发现这个命令: System.IO.Directory.GetCurrentDirectory(); 但是,它为我提供了发布文件夹的特定路径: 通缉路径/垃圾箱/释放 那么还有其他代码吗,我应该手动剪切还是将文件放在发布文件夹中???您可以使用 string wanted_path = Path.GetDirectoryName(Path.GetDirectoryName(Sy

可能重复:

你好,我有个问题: 如何获取我的根项目路径?我的意思是,项目中的第一个文件夹是解决方案所在的文件夹。 我发现这个命令:

System.IO.Directory.GetCurrentDirectory();
但是,它为我提供了发布文件夹的特定路径: 通缉路径/垃圾箱/释放

那么还有其他代码吗,我应该手动剪切还是将文件放在发布文件夹中???

您可以使用

string wanted_path = Path.GetDirectoryName(Path.GetDirectoryName(System.IO.Directory.GetCurrentDirectory()));

这将为您提供根文件夹:

您可以使用..从此处导航。。或者./等等, 附加。。将您带到可以找到.sln文件的文件夹

对于.NET framework(感谢Adiono评论)

对于.NETCore,这里有一种方法可以做到这一点(感谢nopara73comment)


你的程序不知道你的VS项目在哪里,因此请查看并转到
。/..
以获取项目的路径。

我认为这就是你要寻找的。你的意思是想要可执行路径吗?项目路径只对构建有用。我不认为这与前面的问题重复,之前的问题是询问exe的路径。这一条要求项目的路径!由于@oefe@Oded提到的原因,项目路径不是重复的。项目路径也可以用于测试。例如,可能有用于测试的数据文件包含在项目中,但不是生成、源代码或可分发文件的一部分。对我来说,它返回“C:\\Program files(x86)\\Common files\\Microsoft Shared”,而不是项目路径。上述代码仅在visual studio中运行时才适用!为什么不使用System.AppDomain.CurrentDomain.BaseDirectory?它更简单,易于阅读,并给出正确的答案path@algreat-他正在询问根项目路径,该路径位于2个较低级别!如何将
。/..
System.AppDomain.CurrentDomain.BaseDirectory一起使用?@Stiger:
Path.GetFullPath(Path.Combine(AppDomain.CurrentDomain.BaseDirectory,“..\\\\”)
我将.NET核心版本放在这里,以防有人查找:
Path.GetFullPath(Path.Combine)(AppContext.BaseDirectory,“.\\\\\\\\”);
在vs2017 15.6中,这将返回可执行文件的目录。对于那些不知道的人,如果你有路径,你将使用\\,因为在C中,你用一个\来转义一个\。例如:
string path=“C:\\temp\\directory\\somefile.png“
将计算为
C:\temp\directory\somefile.png
@CharlesB如何使用
。/…
?仅将其用作相对路径,它指的是项目目录
var requiredPath = Path.GetDirectoryName(Path.GetDirectoryName(
System.IO.Path.GetDirectoryName( 
      System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase )));
Path.GetFullPath(Path.Combine(AppDomain.CurrentDomain.BaseDirectory,"..\\..\\"))
Path.GetFullPath(Path.Combine(AppContext.BaseDirectory, "..\\..\\..\\")) ;