/**
  * It can be necessary to determine which is the root of a path. For example, the root of
  * D:\Projects\Java is D:\.
  *
  * @param path The path used to get a root
  * @return The root which contais the specified path
  */
 public static String getRoot(String path) {
   File file = new File(path);
   File[] roots = file.listRoots();
   for (int i = 0; i < roots.length; i++)
     if (path.startsWith(roots[i].getPath())) return roots[i].getPath();
   return path;
 }
  /**
   * It can be necessary to check if a path specified by the user is an absolute path (i.e
   * C:\Gfx\3d\Utils is absolute whereas ..\Jext is relative).
   *
   * @param path The path to check
   * @return <code>true</code> if <code>path</code> begins with a root name
   */
  public static boolean beginsWithRoot(String path) {
    if (path.length() == 0) return false;

    File file = new File(path);
    File[] roots = file.listRoots();
    for (int i = 0; i < roots.length; i++)
      if (path.regionMatches(true, 0, roots[i].getPath(), 0, roots[i].getPath().length()))
        return true;
    return false;
  }