直接打开指定的文件
System.Diagnostics.Process.Start(v_OpenFilePath);
直接打开目录
string v_OpenFolderPath = @"目录路径"; System.Diagnostics.Process.Start("explorer.exe", v_OpenFolderPath);
在WinForm/C#中打开一个文件,主要是用到进程的知识。
下面是一些实例,可以模仿着去实现。
1. 打开文件
private void btOpenFile_Click(object sender, EventArgs e)
{
//定义一个ProcessStartInfo实例
System.Diagnostics.ProcessStartInfo info = new System.Diagnostics.ProcessStartInfo();
//设置启动进程的初始目录
info.WorkingDirectory = Application.StartupPath;
//设置启动进程的应用程序或文档名
info.FileName = @"test.txt";
//设置启动进程的参数
info.Arguments = "";
//启动由包含进程启动信息的进程资源
try
{
System.Diagnostics.Process.Start(info);
}
catch (System.ComponentModel.Win32Exception we)
{
MessageBox.Show(this, we.Message);
return;
}
}
2. 打开浏览器
private void btOpenIE_Click(object sender, EventArgs e)
{
//启动IE进程
System.Diagnostics.Process.Start("IExplore.exe");
}
3. 打开指定URL
方法一:
private void btOpenURL_Click(object sender, EventArgs e)
{
//启动带参数的IE进程
System.Diagnostics.Process.Start("IExplore.exe", "http://hi.baidu.com/qinzhiyang");
}
方法二:
private void btOpenURLwithArgs_Click(object sender, EventArgs e)
{
//定义一个ProcessStartInfo实例
System.Diagnostics.ProcessStartInfo startInfo = newSystem.Diagnostics.ProcessStartInfo("IExplore.exe");
//设置进程参数
startInfo.Arguments = " http://hi.baidu.com/qinzhiyang ";
//并且使进程界面最小化
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Minimized;
//启动进程
System.Diagnostics.Process.Start(startInfo);
}
4. 打开文件夹
private void btOpenFolder_Click(object sender, EventArgs e)
{
//获取“收藏夹”文件路径
string myFavoritesPath = System.Environment.GetFolderPath(Environment.SpecialFolder.Favorites);
//启动进程
System.Diagnostics.Process.Start(myFavoritesPath);
}
5. 打印文件
private void PrintDoc()
{
//定义一个进程实例
System.Diagnostics.Process myProcess = new System.Diagnostics.Process();
try
{
//设置进程的参数
string myDocumentsPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
myProcess.StartInfo.FileName = myDocumentsPath + "\\TxtForTest.txt";
myProcess.StartInfo.Verb = "Print";
//显示txt文件的所有谓词
foreach (string v in myProcess.StartInfo.Verbs)
MessageBox.Show(v);
myProcess.StartInfo.CreateNoWindow = true;
//启动进程
myProcess.Start();
}
catch (Win32Exception e)
{
if (e.NativeErrorCode == ERROR_FILE_NOT_FOUND)
{
MessageBox.Show(e.Message + " Check the path." + myProcess.StartInfo.FileName);
}
else if (e.NativeErrorCode == ERROR_ACCESS_DENIED)
{
MessageBox.Show(e.Message + " You do not have permission to print this file.");
}
}
}