在process.start()之前检查进程是否存在;

时间:2014-03-02 18:21:53

标签: c# process process.start

我制作了一个执行可执行文件(.exe)的小程序,但是当你写下没有现有文件时,我收到一个错误,找不到特定文件。

所以我想知道是否有办法在运行之前先检查进程是否存在,如果它不存在,你可以显示一个消息框。

这是我的代码

 private void btn_Start_Click(object sender, EventArgs e)
    {


        string text = textBox1.Text;
        Process process = new Process();
        if (!textBox1.Text.Contains(".exe"))
        {
            process.StartInfo.FileName = text + ".exe";
        }
        else
        {
            process.StartInfo.FileName = text;
        }
        process.Start();


    }

2 个答案:

答案 0 :(得分:2)

在启动过程之前检查文件是否存在:

var processFileName = !textBox1.Text.Contains(".exe")
    ? text + ".exe"
    : text;

if (File.Exists(processFileName))
{
    Process process = new Process();
    process.Start(processFileName);
}

答案 1 :(得分:0)

请尝试以下代码: - >(你必须添加#using System.IO;在使用“File.Exists”命令之前)

button1_Click(object sender, EventArgs )
{
            string exepath = "C:\\example\\example.xlsx";
            if(File.Exists(exepath))
            {
                Process.Start(exepath);
            }
            else
            {
                MessageBox.Show("File not found!");
            }
}

希望它有效!

您可以将路径和字符串串在其他字符串中,然后您甚至可以检查文件夹,如果文件夹存在,则检查文件! 你也可以使用textbox1作为文件名,但你必须添加路径,除非它将在程序目录中搜索。(bin / debug) 如果我错了,原谅我,我正在学习c#! 祝你有个美好的一天!