[ Version ( since = "2.6" ) ]
[ CCode ( array_length = false , array_null_terminated = true , cname = "g_get_system_data_dirs" ) ]
public unowned string[] get_system_data_dirs ()

Returns an ordered list of base directories in which to access system-wide application data.

On UNIX platforms this is determined using the mechanisms described in the XDG Base Directory Specification In this case the list of directories retrieved will be `XDG_DATA_DIRS`.

On Windows it follows XDG Base Directory Specification if `XDG_DATA_DIRS` is defined. If `XDG_DATA_DIRS` is undefined, the first elements in the list are the Application Data and Documents folders for All Users. (These can be determined only on Windows 2000 or later and are not present in the list on other Windows versions.) See documentation for CSIDL_COMMON_APPDATA and CSIDL_COMMON_DOCUMENTS.

Then follows the "share" subfolder in the installation folder for the package containing the DLL that calls this function, if it can be determined.

Finally the list contains the "share" subfolder in the installation folder for GLib, and in the installation folder for the package the application's .exe file belongs to.

The installation folders above are determined by looking up the folder where the module (DLL or EXE) in question is located. If the folder's name is "bin", its parent is used, otherwise the folder itself.

Note that on Windows the returned list can vary depending on where this function is called.


a null-terminated array of strings owned by GLib that must not be modified or freed.

Namespace: GLib.Environment
Package: glib-2.0