如何关闭已经打开的文件?急!在线等

时间:2022-08-02 23:53:01
我用Process.Start(FileName)这种方法,加上循环,打开了多个文件;现在想要关闭所有的文件,怎么办啊?

22 个解决方案

#1


UP!UP!

#2


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

#3


试试Process.kill();

#4


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

#5


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

学习了~

#6


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

#7


Process.kill();

#8


Terminate 

#9


引用 6 楼 shichen4 的回复:
你说的Process.kill()是在下么?这个下面没有kill()的定义啊

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

#10


该回复于2010-10-26 10:36:47被版主删除

#11


学习!! 

#12


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

#13


学习下……

#14


该回复于2010-10-26 10:37:06被版主删除

#15


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

#16


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

#17


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

#18


引用 15 楼 wuyq11 的回复:
proces打开WORD,等文件是调用相关程序打开
通过获取当前进程,关闭进程如
System.Diagnostics.Process myproc= new System.Diagnostics.Process();
foreach (Process thisproc in Process.GetProcessesByName(processName)) {
if(!thisproc.C……

学习。。

#19


 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'

#20


不好意思,这个问题小弟还是没有解决,不够的话我再开贴给分!谢谢

#21


有人继续讨论么?

#22


能告诉答案吗

#1


UP!UP!

#2


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

#3


试试Process.kill();

#4


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

#5


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

学习了~

#6


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

#7


Process.kill();

#8


Terminate 

#9


引用 6 楼 shichen4 的回复:
你说的Process.kill()是在下么?这个下面没有kill()的定义啊

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

#10


该回复于2010-10-26 10:36:47被版主删除

#11


学习!! 

#12


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

#13


学习下……

#14


该回复于2010-10-26 10:37:06被版主删除

#15


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

#16


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

#17


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

#18


引用 15 楼 wuyq11 的回复:
proces打开WORD,等文件是调用相关程序打开
通过获取当前进程,关闭进程如
System.Diagnostics.Process myproc= new System.Diagnostics.Process();
foreach (Process thisproc in Process.GetProcessesByName(processName)) {
if(!thisproc.C……

学习。。

#19


 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'

#20


不好意思,这个问题小弟还是没有解决,不够的话我再开贴给分!谢谢

#21


有人继续讨论么?

#22


能告诉答案吗