有没有选择在C#中选择文件夹?
最理想的是,我想使用OpenFileDialog来选择文件夹,或者至少使用类似的东西.
有没有办法在Qt中打开文件夹浏览器对话框?当我使用QFileDialog
与Directory
文件模式,即使我指定的ShowDirsOnly
选项,我得到的标准文件对话框.我更喜欢使用一个对话框,要求用户从目录树中选择一个目录.
这是我正在使用的PySide代码:
from PySide import QtGui
app = QtGui.QApplication([])
dialog = QtGui.QFileDialog()
dialog.setFileMode(QtGui.QFileDialog.Directory)
dialog.setOption(QtGui.QFileDialog.ShowDirsOnly)
dialog.exec_()
Run Code Online (Sandbox Code Playgroud)
这是我在Windows 7上得到的结果:
我有这个WPF应用程序,我希望有从用户获取目录路径的功能.我想用一些文件夹浏览器对话框,但我不希望从实现它System.Windows.Forms
,或者使用内部的一些巨大的脚本.是否已经实现了WPF中的某些路径获取对话框?
我已经阅读了类似问题的答案,但它充满了System.Windows.Forms ..
我在工具箱中找不到类似的东西,我从WPF开始,所以我可以使用一些帮助.
先感谢您 :]
我第一次在WPF中实现FolderBrowserDialog并且我不喜欢它...
除了我已经弄清楚我的项目中没有引用Windows.Forms的问题,现在我在查看DialogResult返回值是什么时遇到了麻烦......
使用OpenFileDialog,过去我已经这样做了:
OpenFileDialog ofd = new OpenFileDialog();
Nullable<bool> result = ofd.ShowDialog();
if (result == true)
{
// all went well, carry on and do your thing here
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,我现在得到的错误是关于从DialogResult类型转换为bool以及任何有你的转换.
在WPF中使用对话框似乎无法找到关于如何完成此步骤的任何内容,任何人都可以解决一些问题吗?
提前致谢!
编辑
这是我的代码修改后没有类型转换错误.我不确定要检查什么价值result
.通常我会使用,DialogResult.OK
除了在这里没有显示为有效值.
private void btnBrowse_Click(object sender, RoutedEventArgs e)
{
if (cmbTemplate.SelectedItem == "Blockbusters")
{
FolderBrowserDialog fbd = new FolderBrowserDialog();
DialogResult result = fbd.ShowDialog();
//
// ERROR: 'System.Nullable<bool>' does not contain a definition for 'OK'
// and no extention method 'OK' accepting a first argument …
Run Code Online (Sandbox Code Playgroud) 我支持在.NET 3.5上运行的旧版C#应用程序.我们FolderBrowserDialog
在Windows Vista(32位或64位)上发现了一个问题.
基本上发生的事情是对话框会出现,但只会显示根桌面节点,甚至无法展开它以显示其他任何内容.显然,这是不可能的.
经过大量的反复试验后,我最终设法通过在设置的其余部分之前设置RootFolder
属性来获得可用的东西:
FolderBrowserDialog browsePath = new FolderBrowserDialog();
browsePath.RootFolder = Environment.SpecialFolder.MyComputer;
browsePath.SelectedPath = this.textBoxTo.Text;
browsePath.Description = TextResources.OutputTargetCaption;
browsePath.ShowNewFolderButton = true;
if(browsePath.ShowDialog(this) == DialogResult.OK)
{
this.textBoxTo.Text = UpdateLocation(browsePath.SelectedPath);
}
Run Code Online (Sandbox Code Playgroud)
这几乎有效; 然而,我有一个奇怪的问题,然后SelectedPath
(根据定义的内容textBoxTo
)是当前用户的主目录中的路径,它不会自动浏览到该路径,而只是显示我的计算机节点扩展为一个水平.它对任何其他路径都完美无缺.
我确信你的第一个猜测是权限问题,就像我的直觉一样.它似乎不是,这个问题是正常运行的,并且作为管理员,对于标准帐户和管理员帐户都是如此.这是一个干净的安装,当然,没有奇怪的权限或任何东西.
当我们所有默认值都在当前用户的目录中时,这非常烦人!
注意:这只是在应用程序中发生的; 就我所见,它不能用小型测试应用程序重现.
关于可能导致这种情况的任何想法?
更新:Screenies:
这是我想要的行为(从一个小测试应用程序获得)
这是我得到的默认属性
这是我通过将根设置为我的电脑得到的
注意:最后一个图像具有相同的SelectedPath
设置预期图像......
我不知道该怎么在这里谷歌为了解释什么,我想这样做,所以我会尽力在这里:我使用这两个OpenFileDialog
和FolderBrowserDialog
我分别浏览文件和目录代码.
当对话框打开时,用户只能选择实际浏览文件/目录树.但是,在具有许多目录和子目录的树上,用户还希望手动隐式写入(或粘贴)希望去的完整路径.
如何在代码中实现它?
以下是使用对话框的两个函数:
使用FolderBrowserDialog:
private void buttonAddDirectory_Click(object sender, EventArgs e)
{
this.folderBrowserDialog = new System.Windows.Forms.FolderBrowserDialog();
folderBrowserDialog.SelectedPath = "C:\\";
if (folderBrowserDialog.ShowDialog() == DialogResult.OK)
{
string selectedPath = folderBrowserDialog.SelectedPath;
if (!searchForFiles(selectedPath))
{
MessageBox.Show("The directory: " + selectedPath + " doesn't contain sequences.", "Error!");
return;
}
testForm.enableNumOfProcesses();
createNewCommand(runBatchScript, selectedPath, true);
}
}
Run Code Online (Sandbox Code Playgroud)
使用OpenFileDialog:
private void buttonAddFile_Click(object sender, EventArgs e)
{
this.openFileDialog = new System.Windows.Forms.OpenFileDialog();
openFileDialog.InitialDirectory = "C:\\";
openFileDialog.Filter = "PMD files (*" + sequenceExtenssion + ")|*" + sequenceExtenssion …
Run Code Online (Sandbox Code Playgroud) 我有一个textBox,它填充了从数据库中获取的路径(但这是无关紧要的).所以我想要打开一个FolderBrowserDialog按钮 - >浏览文件夹并选择路径(即选择某个文件夹),然后确定/保存此路径并在textBox中进行更新.
所以在整个情况下 - 我不知道如何使用OpenFolderBrowserDialog,因为当我拖动它时 - 它只在页面的底部,但我想把它作为一个按钮放在我的WinForm中的某个地方.而且 - 如何将选定的路径保存到(即字符串)变量中,以便将其设置为文本框的值?某种方法?
我正在寻找最简单的解决方案来实现一个文件夹浏览对话框,其中包含我的(C#)WinForms项目目录前面的复选框.
我在备份中心的Vista中看到了这种对话框.它就像一个普通的文件夹浏览对话框,但在每个文件夹前面都有一个复选框.如果您检查了一个文件夹,那么其中的所有文件夹和文件也会被检查,而您之后仍然可以单独取消选择它们.
如果没有预制控件或其他任何内容,那么最简单的方法是: - 操作普通文件夹浏览对话框以包含复选框功能; 或 - 操纵TreeView控件以使用Shell图标作为路径(因此桌面,我的音乐,普通文件夹,文件等的正确系统图标),所以我可以自己构建一个?
注意:我希望对话框/控件显示文件和文件夹.
提前感谢任何提示和提示.=)
尽管通过TOpenDialog提供了文件选择对话框,但在Delphi 2009中似乎没有可用于创建文件夹选择对话框的简单组件.
使用Delphi创建现代文件夹选择对话框的最常用方法是什么?
有时我在项目工具窗口中关闭文件夹/包,然后我应该单击其中的每个文件夹来打开它们.如何避免这种情况并快速打开所有文件夹/包?
c# ×6
winforms ×3
.net ×2
wpf ×2
checkbox ×1
delphi ×1
delphi-2009 ×1
directory ×1
file-browser ×1
forms ×1
java-package ×1
qt ×1
subdirectory ×1
textbox ×1
topendialog ×1
treeview ×1
vb.net ×1