49

可能な重複:

C#を使用して私の.exeのパスを取得

こんにちは私は質問があります: ルートプロジェクトのパスを取得する方法私が言っているのは、ソリューションがあるプロジェクトの最初のフォルダーです。 私はそのコマンドを見つけました:

System.IO.Directory.GetCurrentDirectory();

しかし、それは私にreleaseフォルダへの特定のパスを与えます: wanted_Path / bin / Release

それで、他のコードがあります、私はそれを手動で切るか、またはReleaseフォルダーに私のファイルを置くべきですか?


  • これだと思いますリンクあなたが探しているものです。 - Mr_Green
  • 実行可能パスが欲しいということですか。プロジェクトパスは建物。 - Oded
  • 私はこれがexeファイルへのパスをたずねていた以前の質問の複製ではないと思います。これはプロジェクトへの道をたずねます! - oefe
  • @oefeによって言及された理由のために重複しない。 - Paul T Davies
  • @oefeが再開のため指名されました。 - Kyle Strand

4 답변


38

あなたが使用することができます

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


  • 私には" C:\\ Program Files(x86)\\ Common Files \\ Microsoft Shared"が返されます。プロジェクトパスの代わりに - algreat
  • 上記のコードは、Visual Studio内から実行している場合にのみ適用されます。 - PaRiMaL RaJ
  • System.AppDomain.CurrentDomain.BaseDirectoryを使用しないのはなぜですか。それはより簡単で、読みやすく、そして正しい道を与えます - algreat
  • @algreat - 彼はルートプロジェクトパスを要求していますが、どちらも2レベル下です。 - PaRiMaL RaJ

17

var requiredPath = Path.GetDirectoryName(Path.GetDirectoryName(
System.IO.Path.GetDirectoryName( 
      System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase )));


73

これはあなたにルートフォルダを与えます:

System.AppDomain.CurrentDomain.BaseDirectory

..または./ etc ..を使用して、ここから移動できます。 ..を追加すると、.slnファイルがあるフォルダに移動します。


  • 使い方..または../..System.AppDomain.CurrentDomain.BaseDirectory? - Stiger
  • @Stiger:Path.GetFullPath(Path.Combine(AppDomain.CurrentDomain.BaseDirectory,"..\\..\\")) - Adiono
  • 誰かがそれを探している場合に備えて、私はここに.NET Coreバージョンをドロップします。Path.GetFullPath(Path.Combine(AppContext.BaseDirectory, "..\\..\\..\\")); - nopara73
  • vs2017 15.6では、これは実行ファイルのディレクトリを返します。 - DSUK

6

あなたのプログラムはあなたのVSプロジェクトがどこにあるかについての知識を持っていません。私の.exeのパスを取得じゃ、行け../..あなたのプロジェクトの道をたどるために。


  • 使い方は@CharlesB../..? - Stiger
  • 相対パスとして使用するだけで、プロジェクトディレクトリを参照します。 - CharlesB

リンクされた質問


関連する質問

最近の質問