Delphi overwrite existing file on save dialog
Asked Answered
A

1

7

I am using the TSaveDialog component to save a file from a button click. However, I am having trouble with saving on an existing file name. Generally, when you want to save over an existing file in Windows, a message box pops up asking you if you really want to overwrite the file. This is not the case with the TSaveDialog component and it will go ahead and write over the file without asking.

I was hoping there was a TSaveDialog function or event that I could use but I have not seen anything that looks like it handles this. So it could be that I simplely haven't found the correct method to use. If there is an event, I could use

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

but the events TSaveDialog has are OnCanClose, OnClose, OnFolderChange, OnIncludeItem, OnSelectionChange, OnShow, OnTypeChange...

My question is, how do I pop up a message box to ask the user if they want to overwrite the existing file using the TSaveDialog component. Thanks.

Atingle answered 31/3, 2010 at 15:5 Comment(0)
S
18

Use saveDialog.Options := saveDialog.Options + [ofOverwritePrompt] before you execute the dialog. Then it will ask if the user wants to overwrite the file or not.

But you do know that the TSaveDialog does not actually save the file, right? It just displays the standard Windows File Save dialog, and then returns the path the user chose. You have to save the file manually using this path, e.g. MyStringList.SaveToFile(saveDialog.FileName).

Shellback answered 31/3, 2010 at 15:9 Comment(1)
@Andreas Ugh! It was a property this whole time? Well, I had a feeling it was something simple. I do understand the second part to your answer. I had that functionality working. Thanks for the help and quick response.Atingle

© 2022 - 2024 — McMap. All rights reserved.