我正在使用C#编写文件,该文件位于桌面上。当我的应用程序关闭时,可以打开这个文件(而不是双击它)吗?
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
writer.Close();
/* Some code here */
}
我正在使用C#编写文件,该文件位于桌面上。当我的应用程序关闭时,可以打开这个文件(而不是双击它)吗?
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
writer.Close();
/* Some code here */
}
Process.Start("notepad.exe", fileName);
更新:
在打开记事本进程后,一定要立即“终止”“父”进程,否则会像@Kilazur评论中所述一样卡住:
Process.GetCurrentProcess().Kill(); // or Application.Exit(); or anything else
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);
}
这将打开给定文件并启动Notepad(默认应用程序),然后结束该应用程序。
请注意,这不一定会启动Nodepad,而是启动*.txt文件的默认应用程序,这可能是您想要的,因为您说您想要与双击文件时相同的行为。
我不确定您所说的“文件”是什么意思,但是您可以按照以下步骤使用默认应用程序打开文档:
System.Diagnostics.Process.Start(@"path to file");
我不确定你想要什么,但是我会尽力猜测:
如果您想在后台进程中写入文件,则使用StreamWriter是正确的方法。
using (StreamWriter sw = new StreamWriter(filepath)) { //写入内容 }
如果您想要启动用户桌面上的文件,则可能需要创建一个新进程来调用该文件关联的应用程序。