C# 禁止Win API包中CommonOpenFileDialog的输入验证
这是一个WPF应用程序,具有最新版本的.NET framework和VS2015 在一个赢10的盒子上 我正在尝试使用WindowsAPI代码包1.1中的“CommonOpenFileDialog” 允许用户建立一个文件夹,在其中执行某些操作。文件夹 可以是现有文件夹,也可以是用户指定的新文件夹 如果用户想要创建一个新文件夹,那么我希望他们能够指定 通过编辑文件夹底部“folder:”文本框中的文本来创建文件夹 对话在这种情况下,对话将只是一种实现 导航到要在其中创建新文件夹的文件夹。我的计划是 验证代码中的输入以检查有效(现有)路径,以及 如果路径不存在,只需创建路径即可 代码如下:C# 禁止Win API包中CommonOpenFileDialog的输入验证,c#,wpf,windows-api-code-pack,C#,Wpf,Windows Api Code Pack,这是一个WPF应用程序,具有最新版本的.NET framework和VS2015 在一个赢10的盒子上 我正在尝试使用WindowsAPI代码包1.1中的“CommonOpenFileDialog” 允许用户建立一个文件夹,在其中执行某些操作。文件夹 可以是现有文件夹,也可以是用户指定的新文件夹 如果用户想要创建一个新文件夹,那么我希望他们能够指定 通过编辑文件夹底部“folder:”文本框中的文本来创建文件夹 对话在这种情况下,对话将只是一种实现 导航到要在其中创建新文件夹的文件夹。我的计划是
private void test1_folderSelectorDialog ()
{
if (CommonFileDialog.IsPlatformSupported)
{
var folderSelectorDialog = new CommonOpenFileDialog();
folderSelectorDialog.EnsureReadOnly = false;
folderSelectorDialog.IsFolderPicker = true;
folderSelectorDialog.Multiselect = false;
folderSelectorDialog.EnsureValidNames = false;
folderSelectorDialog.EnsurePathExists = false;
folderSelectorDialog.EnsureFileExists = false;
folderSelectorDialog.InitialDirectory
= "C:\\My_Initial_Directory";
folderSelectorDialog.Title = "test1_folderSelectorDialog";
if (folderSelectorDialog.ShowDialog() == CommonFileDialogResult.Ok)
TxBx_folder.Text = folderSelectorDialog.FileName;
this.Focus();
}
else
MessageBox.Show ("CommonFileDialog is not supported");
}
当我运行对话框并修改“文件夹:”文本框中的文本时,
然后按“选择文件夹”,对话框验证输入并发出
弹出对话框,显示以下消息:
“路径不存在。请检查路径并重试。”
请注意,我已经设置了“EnsureValidNames”、“EnsureAppheExists”和“EnsureAppheExists”
“确保存在”改为“错误”。(如果它们不控制对话框验证,
那他们在那里干什么?)
我可以右键单击对话框窗口并使用“新建>文件夹”创建一个文件夹
新建文件夹(如果无法解决此问题,我将不得不这样做),
但我宁愿按照我正在尝试的方式去做,因为这看起来很重要
这样做更容易、更直观
我如何让这个愚蠢的东西shaddup,然后不加任何限制地接受输入
对它作出判断
谢谢 如果希望用户只选择文件夹,那么下面的代码就足够了
CommonOpenFileDialog dialog = new CommonOpenFileDialog()
dialog.IsFolderPicker = true
if (dialog.ShowDialog() == CommonFileDialogResult.Ok)
{
filesPath = dialog.FileName
}
我相信下面的事情是不需要的
folderSelectorDialog.Multiselect = false
folderSelectorDialog.EnsureValidNames = false
folderSelectorDialog.EnsurePathExists = false
folderSelectorDialog.EnsureFileExists = false
如果您希望用户只选择文件夹,那么下面的代码就足够了
CommonOpenFileDialog dialog = new CommonOpenFileDialog()
dialog.IsFolderPicker = true
if (dialog.ShowDialog() == CommonFileDialogResult.Ok)
{
filesPath = dialog.FileName
}
我相信下面的事情是不需要的
folderSelectorDialog.Multiselect = false
folderSelectorDialog.EnsureValidNames = false
folderSelectorDialog.EnsurePathExists = false
folderSelectorDialog.EnsureFileExists = false
OP声明他要选择一条不存在的路径来创建它。OP声明他要选择一条不存在的路径来创建它。