公司网络上的 FolderBrowserDialog 以选择子文件夹
Posted
技术标签:
【中文标题】公司网络上的 FolderBrowserDialog 以选择子文件夹【英文标题】:FolderBrowserDialog on company network to select subfolder 【发布时间】:2016-05-04 04:23:18 【问题描述】:在我的 WPF 应用程序中,用户需要选择一个文件夹,该文件夹位于公司网络中。我使用System.Windows.Forms.FolderBrowserDialog
并在按钮单击事件上执行以下代码:
FolderBrowserDialog fbd = new FolderBrowserDialog();
fbd.SelectedPath = "\\\\company.net\\data\\_Confidential";
DialogResult result = fbd.ShowDialog();
FolderBrowserDialog
打开时,系统会自动扫描其他网络设备,导致以下问题:
网络树被其他设备填满,导致我的SelectedPath
滚动离开。当用户开始搜索特殊的子文件夹时,这很烦人,因为他必须向下滚动,否则他的选择点击可能会击中新添加的设备(失去焦点)。
如何避免这个问题?
想法:
我可以扩展/覆盖System.Environment.SpecialFolder
枚举和
设置fbd.RootFolder = System.Environment.SpecialFolder.MySepcialNetworkPath;
我应该使用另一个对话框/控件访问网络文件夹吗?
我是否应该在我的视图中删除“浏览...”Button
,而是扫描整个\\\\company.net\\data\\_Confidential
路径并提供组合框/其他选择控件(例如自己的子文件夹树)?
【问题讨论】:
您可以通过在该列表中搜索所需名称来过滤网络树。 有必要使用System.Windows.Forms.FolderBrowserDialog
吗?为什么不使用简单的OpenFileDialog
? wpf-tutorial.com/dialogs/the-openfiledialog
@StepUp FolderBrowserDialog
因为我必须获取文件夹的名称,然后将下一个 Microsoft.Win32.OpenFileDialog
的 InitialDirectory
设置为所选文件夹。此外,OpenFileDialog
可以与空文件夹一起使用吗?
【参考方案1】:
当我在寻找同样的问题时,我遇到了这个帖子:
How to use OpenFileDialog to select a folder?
用户使用 Nuget 包“WindowsAPICodePack-Shell”中提供的“CommonOpenFileDialog”。
这解决了我的问题,尽管它使用 OpenFileDialog 接口。
然后就可以浏览网盘了。
【讨论】:
【参考方案2】:FolderBrowserDialog 正在“采用”您的 PC 设置,具体取决于您的网络发现在您的 PC/网络上的配置方式。通过这样做,您的文件夹浏览体验将与其他应用程序一致。
虽然您看到的是 FolderBrowserDialog 的默认行为,但您也可以查看以下内容:https://***.com/a/15440926/5793786 解决了与您的问题有些相似的问题@Frank
【讨论】:
以上是关于公司网络上的 FolderBrowserDialog 以选择子文件夹的主要内容,如果未能解决你的问题,请参考以下文章