公司网络上的文件夹浏览器对话框用于选择子文件夹

问题描述 投票:0回答:2

在我的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
    路径并提供组合框/其他选择控件(例如自己的子文件夹树)?
c# wpf winforms network-programming folderbrowserdialog
2个回答
0
投票

FolderBrowserDialog 正在“采用”您的 PC 设置,具体取决于您的 PC/网络上的网络发现配置方式。通过这样做,您的文件夹浏览体验将与其他应用程序保持一致。

虽然您看到的是FolderBrowserDialog的默认行为,但您也可以看看这个:https://stackoverflow.com/a/15440926/5793786解决了与您的问题有点相似的问题@Frank


0
投票

当我寻找同样的问题时,我遇到了这个线程:

如何使用OpenFileDialog选择文件夹?

用户使用 Nuget 包“WindowsAPICodePack-Shell”中提供的“CommonOpenFileDialog”。

这解决了我的问题,尽管它使用 OpenFileDialog 接口。

然后就可以浏览网络驱动器了。

© www.soinside.com 2019 - 2024. All rights reserved.