Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 禁止Win API包中CommonOpenFileDialog的输入验证_C#_Wpf_Windows Api Code Pack - Fatal编程技术网

C# 禁止Win API包中CommonOpenFileDialog的输入验证

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:”文本框中的文本来创建文件夹 对话在这种情况下,对话将只是一种实现 导航到要在其中创建新文件夹的文件夹。我的计划是

这是一个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声明他要选择一条不存在的路径来创建它。