如何获得我的项目路径?

HuM*_*-SI 57 c# forms path

可能重复:
使用c#获取我的.exe的路径

您好我有一个问题:如何获得我的根项目路径?我的意思是项目中解决方案的第一个文件夹.我找到了这个命令:

System.IO.Directory.GetCurrentDirectory();
Run Code Online (Sandbox Code Playgroud)

但它给了我一个指向release文件夹的特定路径:wanted_Path/bin/Release

那么还有其他代码,我应该手动切割它还是将我的文件放在Release文件夹中?

tak*_*ala 82

这为您提供了根文件夹:

System.AppDomain.CurrentDomain.BaseDirectory

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

  • @Stiger:`Path.GetFullPath(Path.Combine(AppDomain.CurrentDomain.BaseDirectory,".. \\ .. \\"))` (21认同)
  • 如果有人正在寻找它,我在此放置.NET Core版本:`Path.GetFullPath(Path.Combine(AppContext.BaseDirectory,“ .. \\ .. \\ .. \\”));` (2认同)
  • 在vs2017 15.6中,这将返回可执行文件的目录. (2认同)

PaR*_*RaJ 40

您可以使用

string wanted_path = Path.GetDirectoryName(Path.GetDirectoryName(System.IO.Directory.GetCurrentDirectory()));
Run Code Online (Sandbox Code Playgroud)

  • 为什么不使用System.AppDomain.CurrentDomain.BaseDirectory?它更简单,易于阅读并提供正确的路径 (15认同)
  • 对我来说,它返回"C:\\ Program Files(x86)\\ Common Files \\ Microsoft Shared"而不是项目路径 (6认同)
  • @algreat - 他要求根proj路径,在2级更低级别! (4认同)

小智 19

var requiredPath = Path.GetDirectoryName(Path.GetDirectoryName(
System.IO.Path.GetDirectoryName( 
      System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase )));
Run Code Online (Sandbox Code Playgroud)


Cha*_*esB 6

您的程序不知道您的VS项目在哪里,所以请查看我的.exe路径../..获取项目的路径.