【问题标题】:How to get my project path? [duplicate]如何获取我的项目路径? [复制]
【发布时间】:2013-01-27 17:01:10
【问题描述】:

可能重复:
get path for my .exe using c#

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

System.IO.Directory.GetCurrentDirectory();

但是,它为我提供了发布文件夹的特定路径: Wanted_Path/bin/Release

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

【问题讨论】:

  • 我认为link 就是您要找的。​​span>
  • 你的意思是你想要可执行路径吗?项目路径仅对构建有用。
  • 我不认为这与之前询问 exe 路径的问题重复。这个要求项目的路径!
  • 由于@oefe 提到的原因,不是重复的。
  • @Oded 项目路径也可用于测试。例如,可能有用于测试的数据文件包含在项目中,但不属于构建、源代码或可分发文件的一部分。

标签: c# forms path


【解决方案1】:

这为您提供了根文件夹:

System.AppDomain.CurrentDomain.BaseDirectory

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

对于 .NET 框架(感谢 Adiono 评论)

Path.GetFullPath(Path.Combine(AppDomain.CurrentDomain.BaseDirectory,"..\\..\\"))

对于 .NET 核心,这是一种方法(感谢 nopara73 评论)

Path.GetFullPath(Path.Combine(AppContext.BaseDirectory, "..\\..\\..\\")) ;

【讨论】:

  • 如何将..../..System.AppDomain.CurrentDomain.BaseDirectory 一起使用?
  • @Stiger: Path.GetFullPath(Path.Combine(AppDomain.CurrentDomain.BaseDirectory,"..\\..\\"))
  • 我把 .NET Core 版本放在这里,以防有人在寻找它:Path.GetFullPath(Path.Combine(AppContext.BaseDirectory, "..\\..\\..\\"));
  • 在 vs2017 15.6 中这将返回可执行文件的目录。
  • 对于那些不知道的人,如果你有路径,你会使用 \\ 因为在 C# 中你用 \ 转义 \。示例:string path = "C:\\temp\\directory\\somefile.png" 将评估为 C:\temp\directory\somefile.png
【解决方案2】:

你可以使用

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

【讨论】:

  • 对我来说它返回 "C:\\Program Files (x86)\\Common Files\\Microsoft Shared" 而不是项目路径
  • 以上代码仅适用于在 Visual Studio 中运行时!
  • 为什么不使用 System.AppDomain.CurrentDomain.BaseDirectory ?它更简单,易于阅读并提供正确的路径
  • @algreat - 他要求 root proj 路径,其级别为 2 级!
【解决方案3】:
var requiredPath = Path.GetDirectoryName(Path.GetDirectoryName(
System.IO.Path.GetDirectoryName( 
      System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase )));

【讨论】:

    【解决方案4】:

    您的程序不知道您的 VS 项目在哪里,因此请参阅 get path for my .exe 并转到 ../.. 以获取您的项目路径。

    【讨论】:

    • @CharlesB 如何使用../..
    • 只是作为相对路径,它指的是项目目录
    猜你喜欢
    • 2012-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-20
    • 2016-08-24
    相关资源
    最近更新 更多