1

我是编码新手 - 所以请耐心等待。我已经做了很多阅读,无法弄清楚这一点。

因此,当您运行我的新应用程序时,您输入文件夹名称。该应用程序转到该文件夹​​,然后将扫描此指定文件夹中的 2 个不同的日志文件。但这是我遇到麻烦的地方。如果日志不存在 - 它会询问您是否要创建它正在寻找的文件......我不希望它这样做。我只是希望它转到文件夹,如果文件不存在,则什么也不做,继续下一行代码。

这是我到目前为止的代码:

private void btnGo_Click(object sender, EventArgs e)
{
    //get node id from user and build path to logs
    string nodeID = txtNodeID.Text;
    string serverPath = @"\\Jhexas02.phiext.com\rwdata\node\";
    string fullPath = serverPath + nodeID;
    string dbtoolPath = fullPath + "\\DBTool_2013.log";
    string msgErrorPath = fullPath + "\\MsgError.log";

    //check if logs exist
    if (File.Exists(dbtoolPath) == true)
    {
        System.Diagnostics.Process.Start("notepad.exe", dbtoolPath);
    }
    {
        MessageBox.Show("The 2013 DBTool log does not exist for this Node.");
    }

该应用程序将显示The 2013 DBTool log does not exist for this Node.- 然后它打开记事本并询问我是否要创建文件。

Cannot find the \\Jhexas02.phiext.com\rwdata\node\R2379495\DBTool_2013.log file.

Do you want to create a new file?

我不想创建一个新文件,永远。有什么好的方法来解决这个问题吗?

4

3 回答 3

4

你在“if”之后跳过了“Else”

if (File.Exists(dbtoolPath) == true)
            {
                System.Diagnostics.Process.Start("notepad.exe", dbtoolPath);
            }
            else
            {
                MessageBox.Show("The 2013 DBTool log does not exist for this Node.");
            }
于 2013-02-04T22:09:39.590 回答
1

当您的代码编译时(只添加这样的括号是有效的),它可以像添加else到您的if语句一样简单:

if (File.Exists(dbtoolPath) == true) // This line could be changed to: if (File.Exists(dbtoolPath))
{
    System.Diagnostics.Process.Start("notepad.exe", dbtoolPath);
}
else // Add this line.
{
    MessageBox.Show("The 2013 DBTool log does not exist for this Node.");
}

正如您现在的代码所示,这部分将始终运行:

{
    MessageBox.Show("The 2013 DBTool log does not exist for this Node.");
}

它本质上与此代码相同:

if (File.Exists(dbtoolPath) == true)
{
    System.Diagnostics.Process.Start("notepad.exe", dbtoolPath);
}

MessageBox.Show("The 2013 DBTool log does not exist for this Node.");
于 2013-02-04T22:08:25.860 回答
1

尝试这个 :

if (File.Exists(dbtoolPath))
    {
        System.Diagnostics.Process.Start("notepad.exe", dbtoolPath);
    }
else {
        MessageBox.Show("The 2013 DBTool log does not exist for this Node.");
    }
于 2013-02-04T22:09:21.003 回答