Seite 1 von 1

SAVEFILEREQUESTER

Verfasst: 19.05.2020 10:07
von Jörg Burdorf
Hallo Gemeinde!

Folgendes Problem:

Ich nutze die Funktion SAVEFILEREQUESTER um eine Datei mit Daten aus meinem Programm zu speichern.

Code: Alles auswählen

dsname$ = SaveFileRequester("SPOC","REPORT.CSV","*.*",0)
Das Programm läuft auf Windows, Linux und Mac OS.

Wenn die der zu speichernde Dateiname in dem ausgewählten Pfad schon existiert, wird
bei Linux und Mac OS von dieser Funktion nachgefragt, ob die vorhandene Datei überschrieben werden soll.
Bei Windows (7 und 10) wird die Datei einfach gnadenlos überschrieben.

Als Umgehung habe ich dann folgenden Code für Windows eingebaut:

Code: Alles auswählen

  fsz = FileSize(dsname$)
  If fsz > 0 
    ok = MessageRequester("SPOC","File exists! Overwrite?",#PB_MessageRequester_YesNo)  
    If ok = #PB_MessageRequester_No 
      ProcedureReturn
    EndIf
  EndIf
Das umgeht das Problem.

Die Frage ist, gibt es im Windows einen "Schalter" wo die Nachfrage eingeschaltet werden kann?

LG
Jörg

Re: SAVEFILEREQUESTER

Verfasst: 19.05.2020 11:36
von Jörg Burdorf
Hab gerade nochmal unter Linux getestet: Da wird auch nicht Systemseitig nachgefragt. Nur bei Mac OS X ist
das so.

LG

Jörg

Re: SAVEFILEREQUESTER

Verfasst: 19.05.2020 19:52
von Andesdaf
Der Standard-Requester von PB scheint das nicht zu können, aber es gibt ein Flag per WinAPI:
#OFN_OVERWRITEPROMPT (also selber bauen)

https://docs.microsoft.com/en-us/window ... efilenamea
https://docs.microsoft.com/en-us/window ... nfilenamea

schon fertig hier:
viewtopic.php?f=8&t=13959