下面是我编写的程序,本人是新手,将其存为exe 后在系统运行,没有错误提示,但是b.txt没被删除
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
namespace ConsoleApplication20
{
    class Program
    {
        static void Main(string[] args)
        {Process p=new Process() ;
            p.StartInfo .FileName ="cmd.exe" ;
                p.StartInfo .UseShellExecute =false ;
                p.StartInfo.RedirectStandardInput  = true;
                p.StartInfo.RedirectStandardOutput = true;
                p.StartInfo.RedirectStandardError = true;
                p.StartInfo.CreateNoWindow = false;
                p.Start();
                p.StandardInput.WriteLine("del c:\b.txt");
                p.StandardInput.WriteLine("exit");
                     }
    }
}

解决方案 »

  1.   

    如果不是这样的化,那么怎么写才能实现调用DOS并且成功执行DOS下命令
      

  2.   

    CMD命令窗口直接输命令就可以了,为什么还整这么麻烦。。
    CMD命令窗口就是WINDOWS自带的程序。。
      

  3.   

     static void Main(string[] args)
      System.IO.File  }
      

  4.   

    start 是开始 del  Process 有参数  详细 请看  msdn.microsoft.com     http://msdn.microsoft.com/zh-cn/library/system.diagnostics.process.aspx
      

  5.   

    ("del c:\b.txt")改为 在d建个  ("del d:\\b.txt")
      

  6.   

    话说其实我就是看着MSDN上写的
      

  7.   

    七楼是说要我用file.DELETE么。。
      

  8.   

    你这写的是什么啊?你执行的CMD,跟删除文件有什么关系。
     p.StandardInput.WriteLine("del c:\b.txt");
      p.StandardInput.WriteLine("exit");
    这两句根本就不是执行删除文件的,只不过是将这两行字打出来。你得自己建一个exe 里面是删除文件的。例如class Program
      {
      static void Main(string[] args)
      {    string filepath = args[0];
        
        File.delete(filepath);  }
      }
    这段代码生成的EXE文件,比如叫filedelete.exe用上面那段代码进行调用,把那个
    p.StartInfo .FileName ="cmd.exe" ;
    cmd.exe的信息换成filedelete.exe的信息就行了。
    原理是这样的代码可能有点错误,没有验证。