从WPF应用程序获取应用程序的目录

时间:2009-06-02 08:04:57

标签: c# .net wpf

我找到了带有AppDomain的Windows窗体的解决方案但是WPF Application对象的等价物是什么?

8 个答案:

答案 0 :(得分:311)

一种方法:

System.AppDomain.CurrentDomain.BaseDirectory

另一种方法是:

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

答案 1 :(得分:27)

这是另一个:

System.Reflection.Assembly.GetExecutingAssembly().Location

答案 2 :(得分:7)

您还可以使用命令行参数的第一个参数:

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

答案 3 :(得分:4)

我只使用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 :(得分:3)

String exePath = System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0].FullyQualifiedName;
 string dir = Path.GetDirectoryName(exePath);

试试这个!

答案 5 :(得分:3)

试试这个。不要忘记using System.Reflection

string baseDir = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

答案 6 :(得分:0)

您也可以从System.Windows.Forms中自由使用Application.StartupPath,但您必须为System.Windows.Forms程序集添加引用!

答案 7 :(得分:0)

我试过了:

    label1.Content = Directory.GetCurrentDirectory();

并获取目录。