package com.msgilligan.bitcoinj.rpc.bitcoind; import java.io.File; /** * Utility class to find Application data directory. * */ public class AppDataDirectory { private static final String osName = System.getProperty("os.name").toLowerCase(); public static File forAppName(String appName) { final String applicationDataDirectoryName; // Locations are OS-dependent if (isWindows()) { // Windows applicationDataDirectoryName = System.getenv("APPDATA") + File.separator + appName; } else if (isMac()) { // TODO: Isn't there a way to do this to account for non-english systems? applicationDataDirectoryName = System.getProperty("user.home") + "/Library/Application Support/" + appName; } else { // Other (probably a Unix variant) // Keep a clean home directory by prefixing with "." applicationDataDirectoryName = System.getProperty("user.home") + "/." + appName; } File applicationDataDirectory = new File(applicationDataDirectoryName); return applicationDataDirectory; } static private boolean isWindows() { return osName.contains("windows"); } static private boolean isMac() { return osName.startsWith("mac") || osName.startsWith("darwin"); } }