我用Process.Start(FileName)这种方法,加上循环,打开了多个文件;现在想要关闭所有的文件,怎么办啊?

解决方案 »

  1.   

    Process.Start不会执行IO的打开文件,只是执行程序,如果不是程序,则用标准方法打开文件。你无法控制那个程序是否释放对文件的读写占用。比如word。
      

  2.   

    我就是要一次打开多个应用程序的,和IO无关,但是我查看了Process下的函数定义,没有有关关闭程序或者关闭指定进程ID的方法。高手请指教,给我点思路,小弟先谢谢了。
    最好说的详细点。
      

  3.   

    你说的Process.kill()是在System.Diagnostics下么?这个下面没有kill()的定义啊
      

  4.   

    是System.Diagnostics下的,我这边显示是有的: Process.Kill();
      

  5.   

    通过Process进程控制函数就行了。杀死进程就行了,这个不难
      

  6.   

    proces打开WORD,等文件是调用相关程序打开
    通过获取当前进程,关闭进程如
    System.Diagnostics.Process myproc= new System.Diagnostics.Process();
    foreach (Process thisproc in Process.GetProcessesByName(processName)) {
    if(!thisproc.CloseMainWindow()){
    thisproc.Kill();
    }}
     
     
      

  7.   

    一次打开多个应用程序的,和IO无关!没有kill()的定义
      

  8.   

    问题已经解决,用的wuyq11的方法,谢谢各位!
    现在结贴
      

  9.   

     foreach (System.Diagnostics.Process thisproc in System.Diagnostics.Process.GetProcessesByName(fileName[b-1]))
                        {
                            if (!thisproc.CloseMainWindow())
                            {
                                thisproc.Kill();
                            }
                            b = b -1;
                        }
    用这种方法,可是单步执行的时候发现foreach根本不执行{}内的语句;用下面的方法: 
    for (c=0;c<10;c++)
                        {
                            System.Diagnostics.Process thisproc = System.Diagnostics.Process.GetProcessesByName(fileName[c]);
                            if (thisproc.CloseMainWindow())
                            {
                                thisproc.Close();
                            }
                        }
    提示错误:Error 1 Cannot implicitly convert type 'System.Diagnostics.Process[]' to 'System.Diagnostics.Process'