我创建了一个使用.NET 4.6.1编译的应用程序(windows)并使用了FolderBrowserDialog对象。按下按钮时,我执行以下代码:
FolderBrowserDialog folderbrowserdialog = new FolderBrowserDialog();
folderbrowserdialog.Description = "Custom Description";
if (folderbrowserdialog.ShowDialog() == DialogResult.OK)
{
filePath = folderbrowserdialog.SelectedPath ;
}
我从folderbrowserdialog获得的内容(如foto)
然而,文件夹browserdialog没有显示网络共享文件夹(我的应用程序的目的),只是pc文件夹。
但我想得到的是网络共享文件夹,我也可以从Windows 10访问,如下图所示:
要标记的注释: 我无法使用打开的文件对话框,因为我需要文件夹位置。 我试图通过添加manisfest就像管理员一样打开App,所以应用程序总是像管理员一样开始。 该应用程序应该适用于Windows 10,7 请注意我知道我可以尝试设置此注册表选项(可能在Win10中被破坏):
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Policies/System
EnableLinkedConnections=1
但是每个客户PC添加此注册表是没有意义的
所以在FolderBrowserDialog中显示网络共享文件夹是否有任何tipp?
答案 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)
我有同样的问题。问题的原因:我以管理员身份使用。映射的驱动器与用户有关,因此我尝试以普通用户的身份使用,并且可以看到映射的驱动器。