公司网络上的 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.OpenFileDialogInitialDirectory 设置为所选文件夹。此外,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 以选择子文件夹的主要内容,如果未能解决你的问题,请参考以下文章

公司网络能ping通ip,不能ping域名

Windowsforms 中对话框,流文件操作

将 Power BI 网关连接到公司网络驱动器/驱动器

网络位置上的 Visual C++ 运行时

linux——网络情报收集(总结篇.干货+实战)

安卓网络通信与服务访问网络上的图片