在c#windows窗体中单击按钮时打开已存在的txt文件

时间:2012-01-25 04:38:15

标签: c#

我的要求是当我点击我的应用程序的一个按钮(C#windows窗体)时,应该在记事本中打开一个已经存在的txt文件。

我已经尝试过以上代码:

private void btn1_Click(object sender, EventArgs e)
    {
        Process p = new Process();
        String str = txt1.Text;
        ProcessStartInfo ps = new ProcessStartInfo("C:\\Users\\gaurav_joshi\\My Documents\\test.txt");
        ps.UseShellExecute = false;
        ps.RedirectStandardInput = true;

        p.StartInfo = ps;
        p.Start();

        p.StandardInput.Write("This is a test.");
        p.StandardInput.Flush();
        p.StandardInput.Close();
    }

但是当我运行该程序时,会发生异常,如下所示 Win32异常 “指定的可执行文件不是此OS平台的有效应用程序”

使用streamReader我可以读取文件,但我想启动记事本或wordpad本身来读取该特定的现有文件。

有人可以帮我解决上述问题

5 个答案:

答案 0 :(得分:6)

您可以试试这个:

Process.Start("notepad.exe", "C:\\Users\\gaurav_joshi\\My Documents\\test.txt")

答案 1 :(得分:1)

您需要执行 notepad.exe 并将其作为命令行参数传递给它。

如果您尝试调用有关文件关联的行为(即尝试调用 .txt 文件会自动在 notepad.exe 中打开它),那么{ {1}} is not what you want (note link).

答案 2 :(得分:1)

您需要做的就是使用以下代码:

    Process.Start("C:\\Users\\gaurav_joshi\\My Documents\\test.txt");

如果您还没有,可能需要这样做:

    Using System.Diagnostics;

这将在默认文本编辑器中打开文本文件,在记事本中打开它,使用它:

    Process.Start("notepad.exe", "C:\\Users\\gaurav_joshi\\My Documents\\test.txt");

答案 3 :(得分:0)

试试这个:

System.Diagnostics.Process.Start("C:\\Users\\gaurav_joshi\\My Documents\\test.txt");

答案 4 :(得分:0)