📌  相关文章
📜  c# 在资源管理器中打开文件夹 - C# (1)

📅  最后修改于: 2023-12-03 15:13:50.916000             🧑  作者: Mango

C# 在资源管理器中打开文件夹

有时候我们需要在程序中打开某个特定的文件夹,让用户可以对其中的文件进行操作。在 C# 中,可以通过调用系统的资源管理器来打开一个指定位置的文件夹。

方法一:使用 Process.Start()

最简单的方法是使用 Process.Start() 方法,这个方法可以直接启动一个外部程序,例如资源管理器。

string folderPath = @"C:\Windows";
System.Diagnostics.Process.Start("explorer.exe", folderPath);

其中 "explorer.exe" 参数表示启动资源管理器,folderPath 则是需要打开的文件夹路径。

但是需要注意的是,这种方法会弹出一个新的资源管理器窗口,如果在程序中需要多次打开文件夹,可能会影响用户体验。

方法二:使用 Shell32

在 Windows 中,可以使用 Shell32 来管理系统资源。通过使用 Shell32,可以在不打开新窗口的情况下打开指定位置的文件夹。

首先需要在项目中添加对 Shell32 的引用。

using Shell32;

然后可以创建 Shell 对象,通过它来打开文件夹。

string folderPath = @"C:\Windows";
Shell shell = new Shell();
Folder folder = shell.NameSpace(folderPath);
folder?.Self?.InvokeVerb("Explore");

在上面的代码中,folderPath 是需要打开的文件夹路径,首先创建了一个 Shell 对象,然后通过 NameSpace() 方法获取到指定文件夹的 Folder 对象,Self 表示当前文件夹,然后调用 InvokeVerb() 方法并传入 "Explore" 参数,即可在当前资源管理器窗口中打开指定文件夹。

总结

以上是在 C# 中打开指定文件夹的两种方法,第一种虽然简单,但每次都会打开一个新窗口,不太友好。第二种方法则可以在当前资源管理器窗口中打开指定文件夹,但需要先引用 Shell32,使用起来稍微复杂一些。根据情况选择合适的方法即可。