Delphi在保存对话框中覆盖现有文件

时间:2010-03-31 15:05:06

标签: delphi dialog delphi-7

我正在使用TSaveDialog组件来保存按钮单击的文件。但是,我在保存现有文件名时遇到问题。通常,当您想要在Windows中保存现有文件时,会弹出一个消息框,询问您是否确实要覆盖该文件。 TSaveDialog组件不是这种情况,它将继续写入文件而不会询问。

我希望有一个我可以使用的TSaveDialog函数或事件,但我还没有看到任何看起来像它处理它的东西。所以我可能很难找到正确的方法来使用它。如果有事件,我可以使用

if FileExists(saveDialog.FileName) then
  //and so forth

但是事件TSaveDialog有OnCanClose,OnClose,OnFolderChange,OnIncludeItem,OnSelectionChange,OnShow,OnTypeChange ......

我的问题是,如何弹出一个消息框询问用户是否要使用TSaveDialog组件覆盖现有文件。感谢。

1 个答案:

答案 0 :(得分:16)

在执行对话框之前使用saveDialog.Options := saveDialog.Options + [ofOverwritePrompt]。然后它会询问用户是否要覆盖该文件。

但是你知道TSaveDialog实际上并没有保存文件,对吧?它只显示标准的Windows文件保存对话框,然后返回用户选择的路径。您必须使用此路径手动保存文件,例如MyStringList.SaveToFile(saveDialog.FileName)