使用GetSaveFileName创建SaveFileDialog时如何停止覆盖提示

时间:2011-04-01 11:31:28

标签: c# savefiledialog

我想停止使用Windows API方法调用在SaveFileDialog上弹出文件替换对话框。 我只是想这样做,因为我创建了一个新文件夹,其中包含用户给出的文件名,因此另一个具有相同名称的文件不存在......

实际上我使用Windows函数创建了savefiledialog - GetSaveFileName因为我已经使用hookProc自定义了对话框...请回答如果有人知道......

由于

6 个答案:

答案 0 :(得分:2)

试试这个:

SaveFileDialog dialog = new SaveFileDialog();
dialog.OverwritePrompt = false; //Removes warning
dialog.ShowDialog();

答案 1 :(得分:2)

如果我误解了你的要求,我会更新这个(如果你提供了当前的代码,我很抱歉。 但是,你可以这样做:

yourSaveFileDialog.OverwritePrompt = false;

禁止覆盖提示

答案 2 :(得分:2)

实际上我终于可以找到我的问题的解决方案,我想把它放在这里,因为我认为它可能对某人有用...

使用GetSaveFileName Windows函数创建SaveFileDialog时,我们必须发送对OPENFILENAME结构的引用(将其视为ofn),其中包含创建savefiledialog所需的详细信息。在这个结构中,我们必须为我们需要的东西设置标志,因此如果我们想要停止覆盖提示,我们不应该为它设置一个标志:

标志设置应为ofn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_NOTESTFILECREATE | OFN_ENABLEHOOK | OFN_HIDEREADONLY;

而不是

ofn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_NOTESTFILECREATE | OFN_ENABLEHOOK | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT;

答案 3 :(得分:1)

听起来你实际上希望用户选择该文件夹,然后您可以用文件填充它。在这种情况下,您应该使用FolderBrowserDialog。它旨在让用户选择一个文件夹。

答案 4 :(得分:0)

来自.NET SDK:

  

SaveFileDialog类

     

...

     

属性

     

...

     

OverwritePrompt - 获取或设置一个指示的值       “另存为”对话框是否显示警告       用户指定已存在的文件名。

您可以将对话框的属性设置为false以禁用覆盖提示。

答案 5 :(得分:0)

您可以将OverwritePrompt属性设置为false,如下所示:

 SaveFileDialog dialog = new SaveFileDialog();
 dialog.OverwritePrompt = false;
 dialog.ShowDialog();