Skip to content

Instantly share code, notes, and snippets.

@vadz
Created December 23, 2024 14:41
Show Gist options
  • Save vadz/5950b4a524648f1e3129f4138ebcd271 to your computer and use it in GitHub Desktop.
Save vadz/5950b4a524648f1e3129f4138ebcd271 to your computer and use it in GitHub Desktop.

Windows 11 Notepad

Note:
'Entered name' columns specify name typed (not selected) 'Filter' columns specify the user selected filter 'Exists' column values specifies:

  • no - file does not exist with or without filter extension
  • yes - file exists exactly as entered (where 'file' and 'file.' both match 'file' but not 'file.ext')
  • filter - file exists with filter extension appended but not without
    (again 'file' and 'file.' being considered equal, i.e. for both 'file' and 'file.' with filter '*.txt' the file 'file.txt' exists)

'Overwrite?' specifies whether an overwrite prompt was shown

non-existing file

Entered name Filter Exists Overwrite? Result
dummy *.txt no no {path}\dummy.txt
dummy.txt *.txt no no {path}\dummy.txt
dummy. *.txt no no {path}\dummy..txt
dummy *.* no no {path}\dummy.txt
dummy.txt *.* no no {path}\dummy.txt
dummy. *.* no no {path}\dummy
"dummy 2" *.txt no no '{path}\dummy 2'
"dummy 2.txt" *.txt no no '{path}\dummy 2.txt'
"dummy 2." *.txt no no '{path}\dummy 2'
"dummy 2" *.* no no '{path}\dummy 2'
"dummy 2.txt" *.* no no '{path}\dummy 2.txt'
"dummy 2." *.* no no '{path}\dummy 2'

existing file

saving from new edit tab

Entered name Filter Exists Overwrite? Result
dummy *.txt yes yes {path}\dummy (A)
dummy.txt *.txt yes yes {path}\dummy.txt
dummy. *.txt yes yes {path}\dummy (C)
dummy *.* yes yes {path}\dummy (B)
dummy.txt *.* yes yes {path}\dummy.txt
dummy. *.* yes yes {path}\dummy
dummy *.txt filter yes {path}\dummy.txt
dummy. *.txt filter no {path}\dummy..txt (C*)
"dummy 2" *.txt yes yes '{path}\dummy 2'
"dummy 2.txt" *.txt yes yes '{path}\dummy 2.txt'
"dummy 2." *.txt yes yes '{path}\dummy 2'
"dummy 2" *.* yes yes '{path}\dummy 2'
"dummy 2.txt" *.* yes yes '{path}\dummy 2.txt'
"dummy 2." *.* yes yes '{path}\dummy 2'
"dummy 2" *.txt filter no '{path}\dummy 2'
"dummy 2." *.txt filter no '{path}\dummy 2'

Paint App

Entered name Filter Exists Overwrite? Result
dummy *.png yes yes {path}\dummy (A)
dummy.png *.png yes yes {path}\dummy.png
dummy. *.png yes yes {path}\dummy (C)
dummy *.png filter yes {path}\dummy.png
dummy. *.png filter no {path}\dummy..png (C*)

Note: Paint App has no . filter in the Save dialog

saving from editing existing file

Entered name Filter Exists Overwrite? Result
dummy *.txt yes no {path}\dummy.txt (A*)
dummy.txt *.txt yes yes {path}\dummy.txt
dummy. *.txt yes yes {path}\dummy (C)
dummy *.* yes no {path}\dummy.txt (B*)
dummy.txt *.* yes yes {path}\dummy.txt
dummy. *.* yes yes {path}\dummy
dummy *.txt filter yes {path}\dummy.txt
dummy. *.txt filter no {path}\dummy..txt (C*)
"dummy 2" *.txt yes yes '{path}\dummy 2'
"dummy 2.txt" *.txt yes yes '{path}\dummy 2.txt'
"dummy 2." *.txt yes yes '{path}\dummy 2'
"dummy 2" *.* yes yes '{path}\dummy 2'
"dummy 2.txt" *.* yes yes '{path}\dummy 2.txt'
"dummy 2." *.* yes yes '{path}\dummy 2'
"dummy 2" *.txt filter no '{path}\dummy 2'
"dummy 2." *.txt filter no '{path}\dummy 2'

Paint App

Entered name Filter Exists Overwrite? Result
dummy *.png yes yes {path}\dummy (A)
dummy.png *.png yes yes {path}\dummy.png
dummy. *.png yes yes {path}\dummy (C)
dummy *.png filter yes {path}\dummy.png
dummy. *.png filter no {path}\dummy..png (C*)

Note: Paint App has no . filter in the Save dialog

wxFileDialog(wxFD_SAVE|wxFD_OVERWRITE_PROMPT) wxMSW (Windows 11)

non-existing file

Entered name Filter Exists Overwrite? IFileDialog result wxFileDialog result
dummy *.doc no no {path}\dummy.doc {path}\dummy.doc
dummy.doc *.doc no no {path}\dummy.doc {path}\dummy.doc
dummy. *.doc no no {path}\dummy..doc {path}\dummy..doc
dummy *.* no no {path}\dummy.doc {path}\dummy.doc
dummy.doc *.* no no {path}\dummy.doc {path}\dummy.doc
dummy. *.* no no {path}\dummy {path}\dummy
"dummy 2" *.doc no no '{path}\dummy 2' '{path}\dummy 2.doc' (x)
"dummy 2.doc" *.doc no no '{path}\dummy 2.doc' '{path}\dummy 2.doc'
"dummy 2." *.doc no no '{path}\dummy 2' '{path}\dummy 2.doc' (x)
"dummy 2" *.* no no '{path}\dummy 2' '{path}\dummy 2'
"dummy 2.doc" *.* no no '{path}\dummy 2.doc' '{path}\dummy 2.doc'
"dummy 2." *.* no no '{path}\dummy 2' '{path}\dummy 2'

existing file

Entered name Filter Exists Overwrite? IFileDialog result wxFileDialog result
dummy *.doc yes yes (for file dummy!) {path}\dummy {path}\dummy.doc (x)
dummy.doc *.doc yes yes {path}\dummy.doc {path}\dummy.doc
dummy. *.doc yes yes (for file dummy!) {path}\dummy {path}\dummy.doc (x)
dummy *.* yes yes {path}\dummy {path}\dummy
dummy.doc *.* yes yes {path}\dummy.doc {path}\dummy.doc
dummy. *.* yes yes {path}\dummy {path}\dummy
dummy *.doc filter yes {path}\dummy.doc {path}\dummy.doc
dummy. *.doc filter no {path}\dummy..doc {path}\dummy..doc
"dummy 2" *.doc yes yes (for file dummy 2!) '{path}\dummy 2' '{path}\dummy 2.doc' (x)
"dummy 2.doc" *.doc yes yes '{path}\dummy 2.doc' '{path}\dummy 2.doc'
"dummy 2." *.doc yes yes (for file dummy 2!) '{path}\dummy 2' '{path}\dummy 2.doc' (x)
"dummy 2" *.* yes yes '{path}\dummy 2' '{path}\dummy 2'
"dummy 2.doc" *.* yes yes '{path}\dummy 2.doc' '{path}\dummy 2.doc'
"dummy 2." *.* yes yes '{path}\dummy 2' '{path}\dummy 2'
"dummy 2" *.doc filter no '{path}\dummy 2' '{path}\dummy 2.doc' (x)
"dummy 2." *.doc filter no '{path}\dummy 2' '{path}\dummy 2.doc' (x)

wxFileDialog(wxFD_SAVE) wxMSW (Windows 11)

non-existing file

Entered name Filter Exists IFileDialog result wxFileDialog result
dummy *.doc no {path}\dummy.doc {path}\dummy.doc
dummy.doc *.doc no {path}\dummy.doc {path}\dummy.doc
dummy. *.doc no {path}\dummy..doc {path}\dummy..doc
dummy *.* no {path}\dummy.doc {path}\dummy.doc
dummy.doc *.* no {path}\dummy.doc {path}\dummy.doc
dummy. *.* no {path}\dummy {path}\dummy
"dummy 2" *.doc no '{path}\dummy 2' '{path}\dummy 2.doc' (x)
"dummy 2.doc" *.doc no '{path}\dummy 2.doc' '{path}\dummy 2.doc'
"dummy 2." *.doc no '{path}\dummy 2' '{path}\dummy 2.doc' (x)
"dummy 2" *.* no '{path}\dummy 2' '{path}\dummy 2'
"dummy 2.doc" *.* no '{path}\dummy 2.doc' '{path}\dummy 2.doc'
"dummy 2." *.* no '{path}\dummy 2' '{path}\dummy 2'

existing file

Entered name Filter Exists IFileDialog result wxFileDialog result
dummy *.doc yes {path}\dummy {path}\dummy.doc (x)
dummy.doc *.doc yes {path}\dummy.doc {path}\dummy.doc
dummy. *.doc yes {path}\dummy {path}\dummy.doc (x)
dummy *.* yes {path}\dummy {path}\dummy
dummy.doc *.* yes {path}\dummy.doc {path}\dummy.doc
dummy. *.* yes {path}\dummy {path}\dummy
dummy *.doc filter {path}\dummy.doc {path}\dummy.doc
dummy. *.doc filter {path}\dummy..doc {path}\dummy..doc
"dummy 2" *.doc yes '{path}\dummy 2' '{path}\dummy 2.doc' (x)
"dummy 2.doc" *.doc yes '{path}\dummy 2.doc' '{path}\dummy 2.doc'
"dummy 2." *.doc yes '{path}\dummy 2' '{path}\dummy 2.doc' (x)
"dummy 2" *.* yes '{path}\dummy 2' '{path}\dummy 2'
"dummy 2.doc" *.* yes '{path}\dummy 2.doc' '{path}\dummy 2.doc'
"dummy 2." *.* yes '{path}\dummy 2' '{path}\dummy 2'
"dummy 2" *.doc filter '{path}\dummy 2' '{path}\dummy 2.doc' (x)
"dummy 2." *.doc filter '{path}\dummy 2' '{path}\dummy 2.doc' (x)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment