web-dev-qa-db-ja.com

WPFアプリケーションからアプリケーションのディレクトリを取得する

AppDomainを使用したWindowsフォームのソリューションを見つけましたが、WPF Applicationオブジェクトと同等のものは何ですか?

159
Joey

1つの方法:

System.AppDomain.CurrentDomain.BaseDirectory

別の方法は次のとおりです。

System.IO.Path.GetDirectoryName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName)
311
Helen

ここに別のものがあります:

System.Reflection.Assembly.GetExecutingAssembly().Location
27
Eddie Butt

コマンドライン引数の最初の引数を使用することもできます:

String exePath = System.Environment.GetCommandLineArgs()[0]

7
Flip

私は単純にstring baseDir = Environment.CurrentDirectory;とその作業を使用しました。

がんばろう

編集:

私はこのタイプの間違いを削除していましたが、この答えのマイナス点は人々が間違った方法を知るのに役立つと思うので、私はそれを編集することを好みます。 :)上記の解決策が役に立たないことを理解し、それをstring appBaseDir = System.AppDomain.CurrentDomain.BaseDirectory;に変更しました。それを取得する他の方法は次のとおりです。

1. string baseDir =   
    System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
 2. String exePath = System.Environment.GetCommandLineArgs()[0];
 3. string appBaseDir =    System.IO.Path.GetDirectoryName
    (System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName);

がんばろう

4
QMaster

これを試して。 using System.Reflectionを忘れないでください。

string baseDir = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
3
Roshan J
String exePath = System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0].FullyQualifiedName;
 string dir = Path.GetDirectoryName(exePath);

これを試して!

3
Arsen Mkrtchyan

私はこれを試しました:

    label1.Content = Directory.GetCurrentDirectory();

また、ディレクトリを取得します。

0
paul

System.Windows.FormsからApplication.StartupPathを自由に使用することもできますが、System.Windows.Formsアセンブリの参照を追加する必要があります!

0
crash