Visual Basic 8 (2005)Visual Studio 2005Windows XP.NET 2.0Windows Forms中级开发Visual StudioWindows.NETVisual Basic
如何使用文件夹对话框控件浏览网络文件夹?






4.82/5 (14投票s)
一篇关于如何使用 VB.NET 和文件夹对话框控件浏览网络文件夹的文章

引言
在文件夹浏览对话框中,我们可以浏览所需的文件夹,但无法将网络邻居作为根文件夹。使用文件夹对话框控件浏览网络文件夹比较困难。我在互联网上看到了很多解决方案,并找到了几行代码来实现这一目标。但是,我在这里向您展示几行代码来实现相同的功能。
背景
我正在开发一个分布式应用程序,我的要求是仅浏览
网络文件夹。我在互联网上搜索了这个问题,发现文件夹对话
框控件并不直接支持像桌面文件夹或其他
文件夹那样浏览网络文件夹。本文将帮助您以一种简单的方式完成此操作。
Using the Code
我编写的代码来浏览网络文件夹非常容易理解。以下是代码。
Private Sub btnBrowse_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnBrowse.Click
'====== Create folder dialog box object
Dim objFolderDialog As New FolderBrowserDialog()
'===== Pass object as Parameter and get Selected network folder
txtPath.Text = GetNetworkFolders(objFolderDialog)
End Sub
''' <summary>
''' This function will get the Folderdialog as parameter and return the
''' Selected
''' Folders UNC path.
''' Ex: \\Server1\TestFolder
''' </summary>
''' <param name="oFolderBrowserDialog"></param>
''' <returns>it will return the Selected Folders UNC Path</returns>
''' <remarks></remarks>
Public Shared Function GetNetworkFolders(ByVal oFolderBrowserDialog _
As FolderBrowserDialog) As String
'======= Get type of Folder Dialog bog
Dim type As Type = oFolderBrowserDialog.[GetType]
'======== Get Fieldinfo for rootfolder.
Dim fieldInfo As Reflection.FieldInfo = type.GetField("rootFolder", _
BindingFlags.NonPublic Or BindingFlags.Instance)
'========= Now set the value for Folder Dialog using DirectCast
'=== 18 = Network Neighborhood is the root
fieldInfo.SetValue(oFolderBrowserDialog,_
DirectCast(18, Environment.SpecialFolder))
'==== if user click on Ok, then it will return the selected folder.
'===== otherwise return the blank string.
If oFolderBrowserDialog.ShowDialog() = DialogResult.OK Then
Return oFolderBrowserDialog.SelectedPath
Else
Return ""
End If
End Function
fieldInfo.SetValue(oFolderBrowserDialog, DirectCast(18, Environment.SpecialFolder))
在这里,您还可以设置其他文件夹浏览器常量。
以下是常量列表
恒定 | 描述 |
0 | 桌面文件夹 |
1 | Internet Explorer |
2 | 开始菜单的程序文件夹 |
3 | 控制面板文件夹 |
4 | 打印机文件夹 |
5 | 开始菜单的文档文件夹 |
6 | 开始菜单的收藏夹文件夹 |
7 | 开始菜单的启动文件夹 |
8 | 最近使用过的文件文件夹 |
9 | 发送到文件夹 |
10 | 回收站文件夹 |
11 | 开始菜单文件夹 |
16 | 桌面(物理)文件夹 |
17 | 我的电脑 |
18 | 网络邻居 |
19 | Nethood文件夹 |
20 | 字体文件夹 |
21 | 模板文件夹 |
摘要
通过这种方式,您可以浏览网络文件夹。如果在使用随附的代码时遇到任何问题,请告诉我。
历史
- 2007年9月18日:初始发布