code: public static String canonical(File p) {
  		try {
  			return p.getCanonicalPath();
  		} catch (IOException e) {
  			String x = p.getAbsolutePath();
  			return x == null ? p.getPath() : x;
  		}
  	}
docs: Returns a full path to the provided file.
  Returns the canonical path, unless that is not available, in which case it returns the absolute path.