不使用process.Start打开文件位置

时间:2015-06-30 19:13:48

标签: c# .net

我想在我的程序中实现窗口的“打开文件位置”。

然而,问题是我不想使用System.Diagnostic.Process因为我必须稍后处理以防止内存泄漏(基于我对进程命名空间的理解)。

还有其他方法可以达到这个目的吗?

编辑1:为了澄清我对这种情况下内存泄漏的含义,如果我使用process.Start显示一个打开文件夹的窗口,我注意到有多个explorer.exe(1个由windows创建,其余由我的应用程序)在任务管理器中关闭我的应用程序创建的窗口并不会终止进程,我必须在用户完成查看该文件夹后手动关闭进程。

但是,当我在Windows中使用“打开文件位置”时,它不会启动另一个explorer.exe进程(这是我想要实现的)。

1 个答案:

答案 0 :(得分:0)

我有一个解决方法给你。如果你这样做:

for...of

每次都不会启动额外的explorer.exe。 限制是您将无法多次启动例如“C:\”。它只是一个窗口,但对你来说可能不是问题。

实际上“explorer.exe”在关闭窗口后被杀死但需要一些时间。您甚至可以通过从命令行启动它来重现它。它并没有立刻被杀死。

所以我更喜欢我的变种,因为它不需要为每个打开的文件夹打开新的“explorer.exe”进程。