65.9K
CodeProject 正在变化。 阅读更多。
Home

如何使用文件夹对话框控件浏览网络文件夹?

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.82/5 (14投票s)

2007年9月18日

CPOL

1分钟阅读

viewsIcon

296683

downloadIcon

4367

一篇关于如何使用 VB.NET 和文件夹对话框控件浏览网络文件夹的文章

Screenshot - app_UI.jpg

Screenshot - Browse_Folders.jpg

引言

在文件夹浏览对话框中,我们可以浏览所需的文件夹,但无法将网络邻居作为根文件夹。使用文件夹对话框控件浏览网络文件夹比较困难。我在互联网上看到了很多解决方案,并找到了几行代码来实现这一目标。但是,我在这里向您展示几行代码来实现相同的功能。

背景

我正在开发一个分布式应用程序,我的要求是仅浏览
网络文件夹。我在互联网上搜索了这个问题,发现文件夹对话
框控件并不直接支持像桌面文件夹或其他
文件夹那样浏览网络文件夹。本文将帮助您以一种简单的方式完成此操作。

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日:初始发布
© . All rights reserved.