A .NET Standard library for the XDG Base Directory Specification and XDG user directories.
Xdg.Directories is a small (the .dll is only 11 KB), fast and portable (Completely supports .NET Standard 2.0) .NET implementation of the XDG Base Directory Specification and XDG user directories for Windows, MacOS and Linux/FreeBSD.
Full documentation can be found at https://xdg-net.github.io/Xdg.Directories.
Use NuGet to install Xdg.Directories.
From the .NET CLI:
dotnet add package Xdg.Directoriesor from Visual Studio's package manager:
Install-Package Xdg.DirectoriesPreview releases are uploaded to both GitHub packages (need GitHub account to download) and Forgejo packages (no login required).
using System;
using System.IO;
using Xdg.Directories;
// Prints the current data directory
Console.Writeline(BaseDirectory.DataHome);
// Create and open a new cache file under the "foo" directory
FileStream file = File.Open(BaseDirectory.CacheFile("foo/bar.json"), FileMode.OpenOrCreate);open System.IO
open Xdg.Directories
// Prints /home/$USER/Desktop
printfn "%s" UserDirectory.DesktopDir
// Get all of the entries in the Documents folder
let entries = Directory.GetFileSystemEntries(UserDirectory.DocumentsDir)This project is licensed under the MIT license.
Icon is made by Emoji One, CC BY-SA 4.0, via Wikimedia Commons.