在WinForm/C#中打开一个文件,主要是用到进程的知识。
下面是一些实例,可以模仿着去实现。
1. 打开文件
1 private void btOpenFile_Click(object sender, EventArgs e) 2 3 { 4 5 //定义一个ProcessStartInfo实例 6 7 System.Diagnostics.ProcessStartInfo info = new System.Diagnostics.ProcessStartInfo(); 8 9 //设置启动进程的初始目录 10 11 info.WorkingDirectory = Application.StartupPath; 12 13 //设置启动进程的应用程序或文档名 14 15 info.FileName = @"test.txt"; 16 17 //设置启动进程的参数 18 19 info.Arguments = ""; 20 21 //启动由包含进程启动信息的进程资源 22 23 try 24 25 { 26 27 System.Diagnostics.Process.Start(info); 28 29 } 30 31 catch (System.ComponentModel.Win32Exception we) 32 33 { 34 35 MessageBox.Show(this, we.Message); 36 37 return; 38 39 } 40 41 }
2. 打开浏览器
1 private void btOpenIE_Click(object sender, EventArgs e) 2 3 { 4 5 //启动IE进程 6 7 System.Diagnostics.Process.Start("IExplore.exe"); 8 9 }
3. 打开指定URL
方法一:
1 private void btOpenURL_Click(object sender, EventArgs e) 2 3 { 4 5 //启动带参数的IE进程 6 7 System.Diagnostics.Process.Start("IExplore.exe", "http://hi.baidu.com/qinzhiyang"); 8 9 }
方法二:
1 private void btOpenURLwithArgs_Click(object sender, EventArgs e) 2 3 { 4 5 //定义一个ProcessStartInfo实例 6 7 System.Diagnostics.ProcessStartInfo startInfo = newSystem.Diagnostics.ProcessStartInfo("IExplore.exe"); 8 9 //设置进程参数 10 11 startInfo.Arguments = " http://hi.baidu.com/qinzhiyang "; 12 13 //并且使进程界面最小化 14 15 startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Minimized; 16 17 //启动进程 18 19 System.Diagnostics.Process.Start(startInfo); 20 21 }
4. 打开文件夹
1 private void btOpenFolder_Click(object sender, EventArgs e) 2 3 { 4 5 //获取“收藏夹”文件路径 6 7 string myFavoritesPath = System.Environment.GetFolderPath(Environment.SpecialFolder.Favorites); 8 9 //启动进程 10 11 System.Diagnostics.Process.Start(myFavoritesPath); 12 13 }
5. 打印文件
1 private void PrintDoc() 2 3 { 4 5 //定义一个进程实例 6 7 System.Diagnostics.Process myProcess = new System.Diagnostics.Process(); 8 9 try 10 11 { 12 13 //设置进程的参数 14 15 string myDocumentsPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal); 16 17 myProcess.StartInfo.FileName = myDocumentsPath + "\\TxtForTest.txt"; 18 19 myProcess.StartInfo.Verb = "Print"; 20 21 //显示txt文件的所有谓词 22 23 foreach (string v in myProcess.StartInfo.Verbs) 24 25 MessageBox.Show(v); 26 27 28 29 myProcess.StartInfo.CreateNoWindow = true; 30 31 //启动进程 32 33 myProcess.Start(); 34 35 } 36 37 catch (Win32Exception e) 38 39 { 40 41 if (e.NativeErrorCode == ERROR_FILE_NOT_FOUND) 42 43 { 44 45 MessageBox.Show(e.Message + " Check the path." + myProcess.StartInfo.FileName); 46 47 } 48 49 else if (e.NativeErrorCode == ERROR_ACCESS_DENIED) 50 51 { 52 53 MessageBox.Show(e.Message + " You do not have permission to print this file."); 54 55 } 56 57 } 58 59 }