UNPKG

platform-folders

Version:

Module to get platform dependent folders (e.g. documents, downloads, config)

55 lines (47 loc) 3.56 kB
# platform-folders Node.js bindings for [sago007/PlatformFolders](https://github.com/sago007/PlatformFolders) (requires Node.js 8 or 10+) This library is inspired by Electrons [app.getPath](https://github.com/electron/electron/blob/master/docs/api/app.md#appgetpathname) used for getting so called "special directories". These directories, like "Documents", "Downloads" and "AppData" are platform dependent. This Node Native Addon uses a C++ libary (linked above) to resolve the paths on Windows, "Linux" and Mac OS X. ## Usage You can either use the "Electron-Style" by calling the default export: ```javascript import getPath from 'platform-folders'; console.log(getPath('downloads')); ``` Following names are supported: - `home` Home folder (e.g. `/home/<Username>`, `c:\Users\<Username>`, `/Users/<Username>`) - `appData` Per-User Application Directory (e.g. `/home/<Username>/.local/share`, `c:\Users\<Username>\AppData\Roaming`, `/Users/<Username>/Library/Application Support`) - `userData` Directory for storing config files (e.g. `/home/<Username>/.config`, `c:\Users\<Username>\AppData\Roaming`, `/Users/<Username>/Library/Application Support`) - `desktop` Desktop directory (e.g. `/home/<Username>/Schreibtisch` (on a German system), `c:\Users\<Username>\Desktop`, `/Users/<Username>/Desktop`) - `documents` Documents directory (e.g. `/home/<Username>/Dokumente` (on a German system), `c:\Users\<Username>\Documents`, `/Users/<Username>/Documents`) - `Downloads` Downloads directory (e.g. `/home/<Username>/Downloads`, `c:\Users\<Username>\Downloads`, `/Users/<Username>/Downloads`) - `music` Music directory (e.g. `/home/<Username>/Musik` (on a German system), `c:\Users\<Username>\Music`, `/Users/<Username>/Music`) - `pictures` Pictures directory (e.g. `/home/<Username>/Bilder` (on a German system), `c:\Users\<Username>\Pictures`, `/Users/<Username>/Pictures`) - `videos` Videos directory (e.g. `/home/<Username>/Videos`, `c:\Users\<Username>\Videos`, `/Users/<Username>/Videos`) - `cache` Cache directory (e.g. `/home/<Username>/.cache`, `c:\Users\<Username>\AppData\Local`, `/Users/<Username>/Library/Caches`) - `state` State directory (e.g. `/home/<Username>/.local/state`, `c:\Users\<Username>\AppData\Local`, `/Users/<Username>/Library/Application Support`) - `savegames` Directory for savegames (e.g. `/home/<Username>/.local/share`, `c:\Users\<Username>\SavedGames`, `/Users/<Username>/Library/Application Support`) Alternatively you can use the named exports: ```javascript import {getDownloadsFolder} from 'platform-folders'; console.log(getDownloadsFolder()); ``` | Key | Method | |-------------|----------------------| | `home` | getHomeFolder() | | `appData` | getDataHome() | | `appdata` | getDataHome() | | `userData` | getConfigHome() | | `desktop` | getDesktopFolder() | | `documents` | getDocumentsFolder() | | `downloads` | getDownloadsFolder() | | `music` | getMusicFolder() | | `pictures` | getPicturesFolder() | | `videos` | getVideosFolder() | | `cache` | getCacheFolder() | | `state` | getStateFolder() | | `savegames` | getSaveGamesFolder() | Following paths can not be used with `getPath` (as they return arrays), but can be called using the exported function: - `getDataFolders` Additional global data folders (e.g. `C:\ProgramData`, `/usr/share/`) - `getConfigFolders` Additional global data folders (e.g. `C:\ProgramData`, `/etc/xdg/`) These functions are not supported for OS X (they will return an empty array).