C#Directory.GetCurrentDirectory()

时间:2017-06-01 14:31:34

标签: c# winforms

当表单加载

时,我有一个带有以下代码部分的Windows窗体应用程序
public MonitorMail()
{           
    InitializeComponent();

    pathfile = Directory.GetCurrentDirectory();
    pathfile = pathfile + @"\Log\Configuration.txt";

    var Lista = LoadConfigFile.LoadConfig(pathfile);

    if (Lista.Count > 0)
    {                
        SwithMailText.Text = Lista[0];
        Excel_Textbox.Text = Lista[1];
        LogFileText.Text = Lista[2];
        MailServerText.Text = Lista[3];
        FromText.Text = Lista[4];
        SslText.Text = Lista[5];
        UserText.Text = Lista[6];                
    }
}

正如您在此代码中所看到的,我声明了一个名为" Lista"的List。哪个List获取配置文件的记录,并用该配置文件的数据填充一些textboxes

我的问题如下:当我在Visual Studio中运行我的程序时,它会在那些textboxes中正确加载记录。

当我运行我的程序在Visual Studio之外运行时,它也会正确加载记录

BUT

当我尝试从命令提示符运行我的程序时(因为它应该如何运行)如MonitorMail.exe程序运行但不显示文本框中的数据。

在试图理解为什么会发生这种情况后,我注意到这与

有关
pathfile = Directory.GetCurrentDirectory();

我对此作出了结论,因为我将pathfile更改为pathfile="complete path of the Configuration.txt",因此当我从cmd点击它时,它应该正常工作。

知道为什么Directory.GetCurrentDirectory();会影响cmd?或者我错过了什么?

1 个答案:

答案 0 :(得分:1)

您在评论中写道:"我需要为每台PC获取我的.exe所在的当前目录" ,但这不是Directory.GetCurrentDirectory()所做的。 ..

你需要

string myPath = System.Reflection.Assembly.GetEntryAssembly().Location;

代替。这将为您提供包括文件名在内的完整路径。如果您需要,可以使用位置Directory