C#文件夹浏览对话框未显示网络共享文件夹win10

时间:2018-06-18 08:38:24

标签: c# .net windows winforms

我创建了一个使用.NET 4.6.1编译的应用程序(windows)并使用了FolderBrowserDialog对象。按下按钮时,我执行以下代码:

FolderBrowserDialog folderbrowserdialog = new FolderBrowserDialog();

    folderbrowserdialog.Description = "Custom Description";

 if (folderbrowserdialog.ShowDialog() == DialogResult.OK)
 {
        filePath = folderbrowserdialog.SelectedPath ;

 }

我从folderbrowserdialog获得的内容(如foto)

enter image description here

然而,文件夹browserdialog没有显示网络共享文件夹(我的应用程序的目的),只是pc文件夹。

但我想得到的是网络共享文件夹,我也可以从Windows 10访问,如下图所示:

enter image description here

要标记的注释: 我无法使用打开的文件对话框,因为我需要文件夹位置。 我试图通过添加manisfest就像管理员一样打开App,所以应用程序总是像管理员一样开始。 该应用程序应该适用于Windows 10,7 请注意我知道我可以尝试设置此注册表选项(可能在Win10中被破坏):

HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Policies/System
    EnableLinkedConnections=1

但是每个客户PC添加此注册表是没有意义的

所以在FolderBrowserDialog中显示网络共享文件夹是否有任何tipp?

2 个答案:

答案 0 :(得分:0)

最后,在阅读了许多主题之后,我发现唯一的解决方案是以编程方式添加注册表项,因此在此如何使用dword值添加特定的C#注册表子项:

我写了一个都可以使用的方法 只是为了让您知道使用它后必须重启设备,它才能正常工作;)

public void ConfigureWindowsRegistry()
{
    RegistryKey localMachine = RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, RegistryView.Registry64); //here you specify where exactly you want your entry

    var reg = localMachine.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", true);
    if (reg == null)
    {
        reg = localMachine.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", true);
    }

    if (reg.GetValue("EnableLinkedConnections") == null)
    {
        reg.SetValue("EnableLinkedConnections", "1", RegistryValueKind.DWord);
        MessageBox.Show(
            "Your configuration is now created,you have to restart your device to let app work perfektly");
    }
}

答案 1 :(得分:0)

我有同样的问题。问题的原因:我以管理员身份使用。映射的驱动器与用户有关,因此我尝试以普通用户的身份使用,并且可以看到映射的驱动器。