【问题标题】:How to stop overwriteprompt when creating SaveFileDialog using GetSaveFileName使用 GetSaveFileName 创建 SaveFileDialog 时如何停止覆盖提示
【发布时间】:2011-04-01 11:31:28
【问题描述】:

我想停止使用 Windows API 方法调用在 SaveFileDialog 弹出文件替换对话框。 我只想这样做,因为我使用用户提供的文件名创建了一个新文件夹,因此存在另一个同名文件不是问题......

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

谢谢

【问题讨论】:

  • 想展示你目前的成果吗?
  • 如果提示你替换文件,那么存在另一个同名文件,IS,问题。
  • 不,实际上我想使用用户提供的文件名创建一个文件夹,因为我必须保存许多文件(根据我的应用程序不同的模式),最好将它们保存在文件夹...谢谢
  • 实际上我使用 Windows 函数创建 savefiledialog - GetSaveFileName 因为我已经使用 hookProc 自定义了对话框...如果有人知道请回答...

标签: c# savefiledialog


【解决方案1】:

试试这个:

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

【讨论】:

    【解决方案2】:

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

    yourSaveFileDialog.OverwritePrompt = false;
    

    抑制覆盖提示

    【讨论】:

      【解决方案3】:

      在我看来,您实际上希望用户选择文件夹,这样您就可以用文件填充它。在这种情况下,您应该使用 FolderBrowserDialog。它旨在让用户选择一个文件夹。

      【讨论】:

        【解决方案4】:

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

        使用 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;

        【讨论】:

          【解决方案5】:

          来自 .NET SDK:

          SaveFileDialog 类

          ...

          属性

          ...

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

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

          【讨论】:

            【解决方案6】:

            您可以像这样将 OverwritePrompt 属性设置为 false:

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

            【讨论】:

            • @dia 您可以拥有相同的文件和文件夹名称,因此不应弹出替换对话框。检查您在该文件夹中是否已有相同的文件名
            猜你喜欢
            • 1970-01-01
            • 2013-05-05
            • 2022-06-11
            • 2020-02-20
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多