我正在使用C#写入桌面上的文件。关闭我的应用程序时(关闭时)我可以打开这个文件(而不是双击它)吗?
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
writer.Close();
/* Some code here */
}
答案 0 :(得分:5)
根据OP的 澄清评论 ,这里是,在记事本过程中打开文件:
Process.Start("notepad.exe", fileName);
<强>更新强>
确保&#34; kill&#34; &#34;父母&#34;在打开记事本进程后立即处理,否则它将挂起@Kilazur注释掉:
Process.GetCurrentProcess().Kill(); // or Application.Exit(); or anything else
答案 1 :(得分:4)
您可以使用Process.Start
启动文件类型的默认应用程序。线索是以正确的方式使用ProcessStartInfo
。传入文件路径并命名为“application”,并将UseShellExecute
设置为true
。
我尝试了以下代码:
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
ProcessStartInfo si = new ProcessStartInfo();
si.FileName = @"C:\somefile.txt";
si.UseShellExecute = true;
Process.Start(si);
}
这将启动记事本(默认应用程序),打开给定文件,然后结束应用程序。
请注意,这不一定是启动Nodepad,而是* .txt文件的默认应用程序,这可能是您想要的,正如您所说,您希望获得与双击该文件相同的行为。
答案 2 :(得分:1)
不确定您对'file'的意思,但您可以使用默认应用程序打开文档,如下所示:
System.Diagnostics.Process.Start(@"path to file");
注意:它将使用默认应用程序,通常是记事本。如果用户将默认应用程序更改为其他应用程序,则它将使用其他应用程序。这是一个很好的方法(我不会明确地调用notepad ,因为用户可能有另一个喜欢的编辑器,如notepad ++)。
答案 3 :(得分:1)
不确定你想要什么但是想猜测:
如果您想在后台进程中写入文件,请使用streamwriter是正确的方法。
使用(StreamWriter sw = new StreamWriter(filepath)) { //写内容 }
如果您尝试向用户的桌面启动文件,则可能需要创建一个新进程来调用文件的关联应用程序。