0.6.0 • Published 2 years ago

platform-folders v0.6.0

Weekly downloads
637
License
MIT
Repository
github
Last release
2 years ago

platform-folders

Node.js bindings for sago007/PlatformFolders (requires Node.js 8 or 10+)

This library is inspired by Electrons app.getPath 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:

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:

import {getDownloadsFolder} from 'platform-folders';
console.log(getDownloadsFolder());
KeyMethod
homegetHomeFolder()
appDatagetDataHome()
appdatagetDataHome()
userDatagetConfigHome()
desktopgetDesktopFolder()
documentsgetDocumentsFolder()
downloadsgetDownloadsFolder()
musicgetMusicFolder()
picturesgetPicturesFolder()
videosgetVideosFolder()
cachegetCacheFolder()
stategetStateFolder()
savegamesgetSaveGamesFolder()

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).