如何避免 SaveFileDialog C# 中的文件名验证

Posted

技术标签:

【中文标题】如何避免 SaveFileDialog C# 中的文件名验证【英文标题】:How to avoid of file name validation in SaveFileDialog C# 【发布时间】:2014-03-26 16:56:21 【问题描述】:

是否可以避免 SaveFileDialog 中的文件名验证?

  var saveFileDialog = new SaveFileDialog 
Filter = "Job package (*.job)|*.job", 
CheckPathExists = false,
 ValidateNames = false ;

 var result = saveFileDialog.ShowDialog();
        if (result.Value)
        

           ....my own validation....
        

ValidateNames 属性不起作用。无论如何,当我输入一个包含无效字符的名称时,对话框会显示它自己的弹出窗口“文件名无效”。 我可以避免吗?怎么样?

【问题讨论】:

invalid characters是指不能在路径中使用的字符,或者例如不存在的路径? 我的意思是不能在文件名中使用的字符。例如。 ':' 或 '|' 但是你不能创建带有无效字符的路径有什么意义呢?为什么需要它? 我想自己处理并使用我的标准警告信息。 我需要这个用于路径模板。 【参考方案1】:
SaveFileDialog saveFileDialog = new SaveFileDialog();
            saveFileDialog.Filter = "Job package|*.job";
            saveFileDialog.CheckPathExists = false;
            saveFileDialog.ValidateNames = false;
            if (saveFileDialog.ShowDialog() == DialogResult.OK)
            
                File.WriteAllText(saveFileDialog.FileName,"");
            

哇 6 年前就有人问了,哈哈

【讨论】:

嗨,Leo,当 saveFileDialog.ValidateNames 设置为 true 时,这难道不是与 OP 想要的相反吗? 是的,我忘记将布尔值更改为假哈哈。不过我编辑了它。

以上是关于如何避免 SaveFileDialog C# 中的文件名验证的主要内容,如果未能解决你的问题,请参考以下文章

c# savefiledialog 锁定到特定目录? [复制]

C# winform 程序,在用SaveFileDialog选择完路径后,主界面如何置顶?

C# OpenFileDialog和SaveFileDialog:打开文件与保存文件

c# savefiledialog 保存特定长度的文本

如何从 SaveFileDialog.FileName 仅获取目录名称

SaveFileDialog c#的默认文件名