WEB开发网
开发学院软件开发C语言 c#扩展方法奇思妙用变态篇四:string 的翻身革命 阅读

c#扩展方法奇思妙用变态篇四:string 的翻身革命

 2010-09-30 20:46:06 来源:WEB开发网   
核心提示: 还是感觉不过瘾,想要删除整个硬盘的文件,c#扩展方法奇思妙用变态篇四:string 的翻身革命(2),用上面的一个一个来也太麻烦了,也没问题,看下面: 3. 执行DOS命令,先看两个简单的 1 string output1 = "del c:\\t1.txt".Execute

还是感觉不过瘾,想要删除整个硬盘的文件,用上面的一个一个来也太麻烦了。也没问题,看下面:

3. 执行DOS命令,先看两个简单的

1     string output1 = "del c:\\t1.txt".ExecuteDOS();
2     string output2 = "dir".ExecuteDOS();

实现也用了Process类,如下:

 1     public static string ExecuteDOS(this string cmd)
 2     {
 3         Process process = new Process();
 4         process.StartInfo.FileName = "cmd.exe";
 5         process.StartInfo.UseShellExecute = false;
 6         process.StartInfo.RedirectStandardInput = true;
 7         process.StartInfo.RedirectStandardOutput = true;
 8         process.StartInfo.RedirectStandardError = true;
 9         process.StartInfo.CreateNoWindow = true;
10         process.Start();
11         process.StandardInput.WriteLine(cmd);
12         process.StandardInput.WriteLine("exit");
13         return process.StandardOutput.ReadToEnd();
14     }

DOS命令也会有异常发生,下面的实现可通过out参数返回错误信息:

ExecuteDOS

 1     public static string ExecuteDOS(this string cmd, out string error)
 2     {
 3         Process process = new Process();
 4         process.StartInfo.FileName = "cmd.exe";
 5         process.StartInfo.UseShellExecute = false;
 6         process.StartInfo.RedirectStandardInput = true;
 7         process.StartInfo.RedirectStandardOutput = true;
 8         process.StartInfo.RedirectStandardError = true;
 9         process.StartInfo.CreateNoWindow = true;
10         process.Start();
11         process.StandardInput.WriteLine(cmd);
12         process.StandardInput.WriteLine("exit");
13         error = process.StandardError.ReadToEnd();
14         return process.StandardOutput.ReadToEnd();
15     }

Tags:扩展 方法 奇思

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接