Remeber last saved directory with QFileDialog

I have a GUI with a field for file name ( self.ui.lineEditFileName) and I need that the file name goes automatically to the file name field in the QFileDialog and set it to always open in D:\Data.
However I want to be able to get to the last directory location where the last file was saved.

If i remove the 3rd argument of the function this exactly what happens but then i lose the file name signal and the field is blank.

Thanks for any help.

fileName, _ = QFileDialog.getSaveFileName(self, “Save Measurement”, ‘D:\Data\’ +
self.ui.lineEditFileName.text(), “(*.csv)”, options=options)

Hey @Santiago_Pineda welcome to the forum!

Do you mean that instead of going to D:\Data you want it to open at the last folder (if there is one)?

In that case what I would do is save the folder of the previous filename, e.g.

self.active_folder = os.path.dirname(fileName)

You can set self.active_folder = 'D:\Data\' by default if you like (or set it to None and check for this, defaulting to not passing anything in).

To use this you would then do –

path = os.path.join(self.active_folder, self.ui.lineEditFileName.text())
fileName, _ = QFileDialog.getSaveFileName(self, “Save Measurement”, path, “(*.csv)”, options=options)

Does that make sense? Let me know if I’ve misunderstood!

Thanks for the reply. This is exactly what i meant. What was confusing is that if you replace the 3rd argument of the getSaveFileName method for the empty string “”, then the dialog will remember the last directory every time I save, but of course i would lose the file name from my GUI lineEditFileName field.
This is how it is working as I intended after your feedback:

In the init function (Note that the \ has to be escaped, otherwise it includes the directory path as part of the file name):

self.active_folder = 'D:\\Data\\'

In the save function:

path = os.path.join(self.active_folder, self.ui.lineEditFileName.text())
fileName, _ = QFileDialog.getSaveFileName(self, "Save Measurement", path, "(*.csv)", options=options)
self.active_folder = os.path.dirname(fileName)

Thanks again Martin