在我的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
路径并提供组合框/其他选择控件(例如自己的子文件夹树)?答案 0 :(得分:0)
FolderBrowserDialog正在“采用”您的PC设置,具体取决于您的PC /网络上如何配置网络发现。通过这样做,您的文件夹浏览体验将与其他应用程序保持一致。
虽然您看到的是FolderBrowserDialog的默认行为,但您也可以看一下:https://stackoverflow.com/a/15440926/5793786解决了与您的问题类似的问题@Frank
答案 1 :(得分:0)
当我在寻找同样的问题时,我遇到了这个帖子:
How to use OpenFileDialog to select a folder?
用户使用Nuget包“WindowsAPICodePack-Shell”中提供的“CommonOpenFileDialog”。
这解决了我的问题,尽管它使用了OpenFileDialog接口。
然后可以浏览网络驱动器。