我想停止使用Windows API方法调用在SaveFileDialog上弹出文件替换对话框。 我只是想这样做,因为我创建了一个新文件夹,其中包含用户给出的文件名,因此另一个具有相同名称的文件不存在......
实际上我使用Windows函数创建了savefiledialog - GetSaveFileName因为我已经使用hookProc自定义了对话框...请回答如果有人知道......
由于
答案 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();