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