Class BaseDirectory
- Namespace
- Xdg.Directories
- Assembly
- Xdg.Directories.dll
The XDG Base Directory specification is a standard created by freedesktop.org that standardizes the location of storing application files.
public static class BaseDirectory
- Inheritance
-
BaseDirectory
- Inherited Members
Remarks
This allows users to have less clutter in their home directories, and allows programmers to not have to hard-code directories.
For all base directories, the directories are resolved as follows:
-
The respective
XDG_*
enivronment variable will always be used if specified -
Windows Use Known Folders. macOS Follow the Apple documentation on application-specific files. Linux/FreeBSD Follow the XDG Base Directory specification.
Properties
BinHome
Base directory for executable files.
public static string BinHome { get; }
Property Value
- string
A single base directory relative to which user-specifc executable files should be written.
Remarks
If XDG_BIN_HOME
is set, the directory specified.
Windows |
""
Windows does not support this by default. |
macOS |
""
macOS does not support this by default. |
Linux/FreeBSD |
$HOME/.local/bin
|
CacheHome
Base directory for non-essential data.
public static string CacheHome { get; }
Property Value
- string
A single base directory relative to which user-specifc non-essential data should be written.
Remarks
If XDG_CACHE_HOME
is set, the directory specified.
Windows |
%LOCALAPPDATA%\cache
|
macOS |
$HOME/Library/Caches
|
Linux/FreeBSD |
$HOME/.cache
|
ConfigDirs
A list of directories to look for configuration files.
public static IList<string> ConfigDirs { get; }
Property Value
- IList<string>
A set of preference-ordered base directories to which configuration files should be searched.
Remarks
If XDG_CONFIG_DIRS
is set, a list of the directories specified.
Windows |
%ProgramData% ,
%APPADATA%
|
macOS |
~/Library/Preferences ,
/Library/Application Support ,
/Library/Preferences
|
Linux/FreeBSD |
/etc/xdg
|
ConfigHome
Base directory for configuration files.
public static string ConfigHome { get; }
Property Value
- string
A single base directory relative to which user-specifc configuration files should be written.
Remarks
If XDG_CONFIG_HOME
is set, the directory specified.
Windows |
%LOCALAPPDATA%
|
macOS |
$HOME/Library/Application Support
|
Linux/FreeBSD |
$HOME/.config
|
DataDirs
A list of directories to search for data files.
public static IList<string> DataDirs { get; }
Property Value
Remarks
If XDG_DATA_DIRS
is set, a list of the directories specified.
Windows |
%APPADATA% ,
%ProgramData%
|
macOS |
/Library/Application Support
|
Linux/FreeBSD |
/usr/local/share/ ,
/usr/share/
|
DataHome
Base directory for data files.
public static string DataHome { get; }
Property Value
- string
A single base directory relative to which user-specifc data files should be written.
Remarks
If XDG_DATA_HOME
is set, the directory specified.
Windows |
%LOCALAPPDATA%
|
macOS |
$HOME/Library/Application Support
|
Linux/FreeBSD |
$HOME/.local/share
|
RuntimeDir
Base directory for runtime-specific files.
public static string RuntimeDir { get; }
Property Value
- string
A single base directory relative to which user-specifc runtime files should be written.
Remarks
If XDG_RUNTIME_DIR
is set, the directory specified.
Windows |
%LOCALAPPDATA%
|
macOS |
$HOME/Library/Application Support
|
Linux/FreeBSD |
/run/user/$UID
|
StateHome
Base directory for state data.
public static string StateHome { get; }
Property Value
- string
A single base directory relative to which user-specifc state data should be written.
Remarks
If XDG_STATE_HOME
is set, the directory specified.
Windows |
%LOCALAPPDATA%
|
macOS |
$HOME/Library/Application Support
|
Linux/FreeBSD |
$HOME/.local/state
|