private final static Map<String, Path> buildRootMap() {
		final String[] bases = FileSystem.getBases();
		final Map<String, Path> map = new HashMap<>();
		final String baseName;
		final Path home = FileSystem.getBase();
		Path base = home;
		if (base != null) {
			while (base.parent != null) {
				base = base.parent;
			}
			if (FileSystem.type == FileSystem.OSType.WINDOWS) {
				baseName = base.str.substring(0, 2);
			} else {
				baseName = base.str;
			}
		} else {
			baseName = null;
		}
		if (baseName != null) {
			for (final String p : bases) {
				final Path root;
				if (baseName.equals(p)) {
					root = base;
					map.put("~", home);
				} else {
					root = new Path(p);
				}
				if (!root.exists()) {
					continue;
				}
				map.put(root.str, root);
				map.put(root.pathStr, root);
				map.put(p, root);
			}
		} else {
			for (final String p : bases) {
				final Path root = new Path(p);
				if (!root.exists()) {
					continue;
				}
				map.put(root.str, root);
				map.put(root.pathStr, root);
				map.put(p, root);
			}
		}
		return map;

	}