SAVEFILEREQUESTER

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Jörg Burdorf
Beiträge: 23
Registriert: 14.12.2018 23:01

SAVEFILEREQUESTER

Beitrag 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
Jörg Burdorf
Beiträge: 23
Registriert: 14.12.2018 23:01

Re: SAVEFILEREQUESTER

Beitrag 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
Andesdaf
Moderator
Beiträge: 2658
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Re: SAVEFILEREQUESTER

Beitrag 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
Win11 x64 | PB 6.00 (x64)
Antworten