在 C# .NET 3.5 应用程序(WinForms 和 WPF 的混合)中,我想让用户选择一个文件夹以从中导入大量数据。目前,它正在使用 System.Windows.Forms.FolderBrowserDialog
但这有点蹩脚。主要是因为你不能在其中输入路径(所以你需要映射一个网络驱动器,而不是输入一个 UNC 路径)。
我想要更像 System.Windows.Forms.OpenFileDialog
的东西,但用于文件夹而不是文件。
我可以用什么代替? WinForms 或 WPF 解决方案很好,但如果可以避免的话,我不希望 PInvoke 进入 Windows API。
最佳答案
不要自己创建!已经完成了。您可以使用 FolderBrowserDialogEx - 内置 FolderBrowserDialog 的可重用派生。这允许您输入路径,甚至是 UNC 路径。您还可以使用它浏览计算机或打印机。就像内置的 FBD 一样工作,但是......更好。
完整的源代码。自由的。 MS-公共(public)许可证。
使用代码:
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;
}
关于c# - 使用 .NET 3.5 选择文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45988/