Skip to content

Provides cross platform access to the common directories such as AppData, Desktop or tmp

License

Notifications You must be signed in to change notification settings

sanyarnd/standardpaths

Repository files navigation

Standard Paths

Build Status Maintainability Rating

Standard Paths is a small library which provides cross platform access to the common directories such as AppData, Desktop or tmp.

Target JVM version is 8.

Features

  • All major distributions: Windows, Linux, MacOS (not yet implemented)
  • Ease of use
  • NIO-based
  • Lightweight (~10kb)

The package has jna-platform as transitive dependency (~2.5mb).

Quick Start

Access StandardPaths class and follow autocomplete suggestions:

Path home = StandardPaths.home();
Path cache = StandardPaths.cache();

Be aware that all StandardPaths methods might throw unchecked NoSuchPathException if it's impossible to obtain required path.

Download

Maven:

<dependency> 
    <groupId>io.github.sanyarnd</groupId> 
    <artifactId>standard-paths</artifactId>
    <version>1.0.2</version>
</dependency>

Gradle:

compile 'io.github.sanyarnd:standard-paths:1.0.2'

Standalone jars are available on releases page.

More download options available in Bintray repository.

Available paths (examples)

Paths below are mere examples.

Internal implementation will always do its best utilizing system API (WinAPI, freedesktop etc) and retrieve the real path.

More details can be found in JavaDocs.

Cache

  • Windows: %USERPROFILE%/AppData/Local
  • Linux: $XDG_CACHE_HOME (default: $HOME/.cache)

Config

  • Windows: %USERPROFILE%/AppData/Local
  • Linux: $XDG_CONFIG_HOME (default: $HOME/.config)

Data

  • Windows: %USERPROFILE%/AppData/Roaming
  • Linux: $HOME/.local/share

Local data

  • Windows: %USERPROFILE%/AppData/Local
  • Linux: $HOME/.local/share

Temp directory

  • Windows: %USERPROFILE%/AppData/Local/Temp
  • Linux: /tmp

Home

  • Windows: %USERPROFILE%
  • Linux: ~

User directories

desktop:

  • Windows: %USERPROFILE%/Desktop
  • Linux: ~/Desktop

documents:

  • Windows: %USERPROFILE%/Documents
  • Linux: ~/Documents

downloads:

  • Windows: %USERPROFILE%/Downloads
  • Linux: ~/Downloads

music:

  • Windows: %USERPROFILE%/Music
  • Linux: ~/Music

pictures:

  • Windows: %USERPROFILE%/Pictures
  • Linux: ~/Pictures

videos:

  • Windows: %USERPROFILE%/Videos
  • Linux: ~/Videos

Changelog

See CHANGELOG.md.