Class reference
FileDialog
Inherits ConfirmationDialog
A dialog for selecting files or directories in the filesystem.
Description
FileDialog is a preset dialog used to choose files and directories in the filesystem. It supports filter masks. FileDialog automatically sets its window title according to the file_mode. If you want to use a custom title, disable this by setting mode_overrides_title to false.
Properties
int access = 0
int access = 0The file system access scope. Warning: In Web builds, FileDialog cannot access the host file system. In sandboxed Linux and macOS environments, use_native_dialog is automatically used to allow limited access to host file system.
String current_dir
String current_dirThe current working directory of the file dialog. Note: For native file dialogs, this property is only treated as a hint and may not be respected by specific OS implementations.
String current_file
String current_fileThe currently selected file of the file dialog.
String current_path
String current_pathThe currently selected file path of the file dialog.
bool dialog_hide_on_ok = false
bool dialog_hide_on_ok = falseint display_mode = 0
int display_mode = 0Display mode of the dialog's file list.
bool favorites_enabled = true
bool favorites_enabled = trueIf true, shows the toggle favorite button and favorite list on the left side of the dialog.
bool file_filter_toggle_enabled = true
bool file_filter_toggle_enabled = trueIf true, shows the toggle file filter button.
int file_mode = 4
int file_mode = 4The dialog's open or save mode, which affects the selection behavior.
bool file_sort_options_enabled = true
bool file_sort_options_enabled = trueIf true, shows the file sorting options button.
String filename_filter = ""
String filename_filter = ""The filter for file names (case-insensitive). When set to a non-empty string, only files that contains the substring will be shown. filename_filter can be edited by the user with the filter button at the top of the file dialog. See also filters, which should be used to restrict the file types that can be selected instead of filename_filter which is meant to be set by the user.
PackedStringArray filters = PackedStringArray()
PackedStringArray filters = PackedStringArray()The available file type filters. Each filter string in the array should be formatted like this: *.png,*.jpg,*.jpeg;Image Files;image/png,image/jpeg. The description text of the filter is optional and can be omitted. Both file extensions and MIME type should be always set. Note: Embedded file dialog and Windows file dialog support only file extensions, while Android, Linux, and macOS file dialogs also support MIME types.
bool folder_creation_enabled = true
bool folder_creation_enabled = trueIf true, shows the button for creating new directories (when using FILE_MODE_OPEN_DIR, FILE_MODE_OPEN_ANY, or FILE_MODE_SAVE_FILE).
bool hidden_files_toggle_enabled = true
bool hidden_files_toggle_enabled = trueIf true, shows the toggle hidden files button.
bool layout_toggle_enabled = true
bool layout_toggle_enabled = trueIf true, shows the layout switch buttons (list/thumbnails).
bool mode_overrides_title = true
bool mode_overrides_title = trueIf true, changing the file_mode property will set the window title accordingly (e.g. setting file_mode to FILE_MODE_OPEN_FILE will change the window title to "Open a File").
int option_count = 0
int option_count = 0The number of additional OptionButtons and CheckBoxes in the dialog.
bool recent_list_enabled = true
bool recent_list_enabled = trueIf true, shows the recent directories list on the left side of the dialog.
String root_subfolder = ""
String root_subfolder = ""If non-empty, the given sub-folder will be "root" of this FileDialog, i.e. user won't be able to go to its parent directory. Note: This property is ignored by native file dialogs.
bool show_hidden_files = false
bool show_hidden_files = falseIf true, the dialog will show hidden files. Note: This property is ignored by native file dialogs on Android and Linux.
Vector2i size = Vector2i(640, 360)
Vector2i size = Vector2i(640, 360)String title = "Save a File"
String title = "Save a File"bool use_native_dialog = false
bool use_native_dialog = falseIf true, and if supported by the current DisplayServer, OS native dialog will be used instead of custom one. Note: On Android, it is only supported for Android 10+ devices and when using ACCESS_FILESYSTEM. For access mode ACCESS_RESOURCES and ACCESS_USERDATA, the system will fall back to custom FileDialog. Note: On Linux and macOS, sandboxed apps always use native dialogs to access the host file system. Note: On macOS, sandboxed apps will save security-scoped bookmarks to retain access to the opened folders across multiple sessions. Use OS.get_granted_permissions() to get a list of saved bookmarks. Note: Native dialogs are isolated from the base process, file dialog properties can't be modified once the dialog is shown.
Methods
void add_filter(String filter, String description = "")
String filter, String description = "")Adds a comma-separated file name filter option to the FileDialog with an optional description, which restricts what files can be picked. A filter should be of the form "filename.extension", where filename and extension can be * to match any string. Filters starting with . (i.e. empty filenames) are not allowed. For example, a filter of "*.png, *.jpg" and a description of "Images" results in filter text "Images (*.png, *.jpg)".
void add_option(String name, PackedStringArray values, int default_value_index)
String name, PackedStringArray values, int default_value_index)Adds an additional OptionButton to the file dialog. If values is empty, a CheckBox is added instead. default_value_index should be an index of the value in the values. If values is empty it should be either 1 (checked), or 0 (unchecked).
void clear_filename_filter()
Clear the filter for file names.
void clear_filters()
Clear all the added filters in the dialog.
void deselect_all()
Clear all currently selected items in the dialog.
LineEdit get_line_edit()
LineEdit get_line_edit()Returns the LineEdit for the selected file. Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their CanvasItem.visible property.
int get_option_default(int option) const
int get_option_default(int option) constReturns the default value index of the OptionButton or CheckBox with index option.
String get_option_name(int option) const
String get_option_name(int option) constReturns the name of the OptionButton or CheckBox with index option.
PackedStringArray get_option_values(int option) const
PackedStringArray get_option_values(int option) constReturns an array of values of the OptionButton with index option.
Dictionary get_selected_options() const
Dictionary get_selected_options() constReturns a Dictionary with the selected values of the additional OptionButtons and/or CheckBoxes. Dictionary keys are names and values are selected value indices.
VBoxContainer get_vbox()
VBoxContainer get_vbox()Returns the vertical box container of the dialog, custom controls can be added to it. Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their CanvasItem.visible property. Note: Changes to this node are ignored by native file dialogs, use add_option() to add custom elements to the dialog instead.
void invalidate()
Invalidate and update the current dialog content list. Note: This method does nothing on native file dialogs.
bool is_customization_flag_enabled(int flag) const
bool is_customization_flag_enabled(int flag) constReturns true if the provided flag is enabled.
void set_customization_flag_enabled(int flag, bool enabled)
int flag, bool enabled)Toggles the specified customization flag, allowing to customize features available in this FileDialog. See Customization for options.
void set_option_default(int option, int default_value_index)
int option, int default_value_index)Sets the default value index of the OptionButton or CheckBox with index option.
void set_option_name(int option, String name)
int option, String name)Sets the name of the OptionButton or CheckBox with index option.
void set_option_values(int option, PackedStringArray values)
int option, PackedStringArray values)Sets the option values of the OptionButton with index option.
Signals
dir_selected(String dir)
String dir)Emitted when the user selects a directory.
file_selected(String path)
String path)Emitted when the user selects a file by double-clicking it or pressing the OK button.
filename_filter_changed(String filter)
String filter)Emitted when the filter for file names changes.
files_selected(PackedStringArray paths)
PackedStringArray paths)Emitted when the user selects multiple files.
Constants
FILE_MODE_OPEN_FILE = 0
The dialog allows selecting one, and only one file.
FILE_MODE_OPEN_FILES = 1
The dialog allows selecting multiple files.
FILE_MODE_OPEN_DIR = 2
The dialog only allows selecting a directory, disallowing the selection of any file.
FILE_MODE_OPEN_ANY = 3
The dialog allows selecting one file or directory.
FILE_MODE_SAVE_FILE = 4
The dialog will warn when a file exists.
ACCESS_RESOURCES = 0
The dialog only allows accessing files under the Resource path (res://).
ACCESS_USERDATA = 1
The dialog only allows accessing files under user data path (user://).
ACCESS_FILESYSTEM = 2
The dialog allows accessing files on the whole file system.
DISPLAY_THUMBNAILS = 0
The dialog displays files as a grid of thumbnails. Use thumbnail_size to adjust their size.
DISPLAY_LIST = 1
The dialog displays files as a list of filenames.
CUSTOMIZATION_HIDDEN_FILES = 0
Toggles visibility of the favorite button, and the favorite list on the left side of the dialog. Equivalent to hidden_files_toggle_enabled.
CUSTOMIZATION_CREATE_FOLDER = 1
If enabled, shows the button for creating new directories (when using FILE_MODE_OPEN_DIR, FILE_MODE_OPEN_ANY, or FILE_MODE_SAVE_FILE). Equivalent to folder_creation_enabled.
CUSTOMIZATION_FILE_FILTER = 2
If enabled, shows the toggle file filter button. Equivalent to file_filter_toggle_enabled.
CUSTOMIZATION_FILE_SORT = 3
If enabled, shows the file sorting options button. Equivalent to file_sort_options_enabled.
CUSTOMIZATION_FAVORITES = 4
If enabled, shows the toggle favorite button and favorite list on the left side of the dialog. Equivalent to favorites_enabled.
CUSTOMIZATION_RECENT = 5
If enabled, shows the recent directories list on the left side of the dialog. Equivalent to recent_list_enabled.
CUSTOMIZATION_LAYOUT = 6
If enabled, shows the layout switch buttons (list/thumbnails). Equivalent to layout_toggle_enabled.
Theme properties
Color file_disabled_color = Color(1, 1, 1, 0.25)
Color file_disabled_color = Color(1, 1, 1, 0.25)The color tint for disabled files (when the FileDialog is used in open folder mode).
Color file_icon_color = Color(1, 1, 1, 1)
Color file_icon_color = Color(1, 1, 1, 1)The color modulation applied to the file icon.
Color folder_icon_color = Color(1, 1, 1, 1)
Color folder_icon_color = Color(1, 1, 1, 1)The color modulation applied to the folder icon.
int thumbnail_size = 64
int thumbnail_size = 64The size of thumbnail icons when DISPLAY_THUMBNAILS is enabled.
Texture2D back_folder
Texture2D back_folderCustom icon for the back arrow.
Texture2D create_folder
Texture2D create_folderCustom icon for the create folder button.
Texture2D favorite
Texture2D favoriteCustom icon for favorite folder button.
Texture2D favorite_down
Texture2D favorite_downCustom icon for button to move down a favorite entry.
Texture2D favorite_up
Texture2D favorite_upCustom icon for button to move up a favorite entry.
Texture2D file
Texture2D fileCustom icon for files.
Texture2D file_thumbnail
Texture2D file_thumbnailIcon for files when in thumbnail mode.
Texture2D folder
Texture2D folderCustom icon for folders.
Texture2D folder_thumbnail
Texture2D folder_thumbnailIcon for folders when in thumbnail mode.
Texture2D forward_folder
Texture2D forward_folderCustom icon for the forward arrow.
Texture2D list_mode
Texture2D list_modeIcon for the button that enables list mode.
Texture2D parent_folder
Texture2D parent_folderCustom icon for the parent folder arrow.
Texture2D reload
Texture2D reloadCustom icon for the reload button.
Texture2D sort
Texture2D sortCustom icon for the sorting options menu.
Texture2D thumbnail_mode
Texture2D thumbnail_modeIcon for the button that enables thumbnail mode.
Texture2D toggle_filename_filter
Texture2D toggle_filename_filterCustom icon for the toggle button for the filter for file names.
Texture2D toggle_hidden
Texture2D toggle_hiddenCustom icon for the toggle hidden button.