当前位置:  开发笔记 > 编程语言 > 正文

选择.NET 3.5的文件夹

如何解决《选择.NET3.5的文件夹》经验,为你挑选了1个好方法。

在C#.NET 3.5应用程序(WinForms和WPF的混合)中,我想让用户选择一个文件夹来导入一大堆数据.目前,它正在使用,System.Windows.Forms.FolderBrowserDialog但有点蹩脚.主要是因为您无法在其中键入路径(因此您需要映射网络驱动器,而不是键入UNC路径).

我想要更喜欢的东西System.Windows.Forms.OpenFileDialog,但是对于文件夹而不是文件.

我可以用什么呢?WinForms或WPF解决方案很好,但如果我能避免它,我宁愿不要将PInvoke引入Windows API.



1> Cheeso..:

不要自己创造!它已经完成了.您可以使用FolderBrowserDialogEx - 内置FolderBrowserDialog的可重用衍生物.这个允许您输入路径,甚至是UNC路径.您还可以使用它浏览计算机或打印机.就像内置的FBD一样,但是......更好.

完整源代码.自由.MS-Public许可证.

FolderBrowserDialogEx

使用它的代码:

var dlg1 = new Ionic.Utils.FolderBrowserDialogEx();
dlg1.Description = "Select a folder to extract to:";
dlg1.ShowNewFolderButton = true;
dlg1.ShowEditBox = true;
//dlg1.NewStyle = false;
dlg1.SelectedPath = txtExtractDirectory.Text;
dlg1.ShowFullPathInEditBox = true;
dlg1.RootFolder = System.Environment.SpecialFolder.MyComputer;

// Show the FolderBrowserDialog.
DialogResult result = dlg1.ShowDialog();
if (result == DialogResult.OK)
{
    txtExtractDirectory.Text = dlg1.SelectedPath;
}


这不是通常的借口吗?;-)
顺便说一句,我注意到,当对话框打开时,不会设置用户文件夹中任何内容的路径.例如,如果我像:dlg1.SelectedPath = C:\ Users\m00gs\Pictures \然后调用.ShowDialog(),我从为.RootFolder指定的文件夹开始.我的猜测是因为这是一个用户文件夹.有办法解决这个问题吗?
推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有