【问题标题】:How to port BrowseForFolder from VBScript to C#/WPF?如何将 BrowseForFolder 从 VBScript 移植到 C#/WPF?
【发布时间】:2026-01-01 01:25:02
【问题描述】:

我需要某种对话框来浏览本地 SMB 网络以获取文件共享。 VBScript 就是这样做的。

Set application = CreateObject("Shell.Application")
Set folder = application.BrowseForFolder(0, "Moo!", &h250, &h12) ' &h12 sets
' Network as the root folder.

所以我添加了对 Forms 的引用并尝试使用 FolderBrowserDialog 来完成,但令我惊讶的是:

FolderBrowserDialog dialog = new FolderBrowserDialog();
dialog.RootFolder = /* The Environment.SpecialFolder enumeration doesn't have
a value Network! */
dialog.RootFolder = (Environment.SpecialFolder)0x12; /* This dirty trick doesn't
work too. */

然后我在 Windows API 中寻找一个可调用的函数来执行此操作,但没有找到。

【问题讨论】:

    标签: c# wpf winforms winapi vbscript


    【解决方案1】:

    本机 Windows 函数是 SHBrowseForFolder,但在 .NET 下您应该使用 FolderBrowserDialog

    【讨论】: