int last = path.lastIndexOf(separatorChar); if (last == -1)
String prefix = null; int nameSeqIndex = 0;     if (separatorChar == '/' && path.charAt (0) == '/') { prefix = "/"; nameSeqIndex = 1; } else if (separatorChar == '\\' && path.length () > 1) { if ((path.charAt (0) == '\\' && path.charAt (1) == '\\') || (((path.charAt (0) >= 'a' && path.charAt (0) <= 'z') || (path.charAt (0) >= 'A' && path.charAt (0) <= 'Z')) && path.charAt (1) == ':')) { prefix = path.substring (0, 2); nameSeqIndex = 2; } }     if (nameSeqIndex < path.length ()) { String nameSeq = path.substring (nameSeqIndex, path.length ()); int last = nameSeq.lastIndexOf (separatorChar); if (last == -1) return prefix; else if (last == (nameSeq.length () - 1))    return null; else if (last == 0) last++;  if (prefix != null) return prefix + nameSeq.substring (0, last); else return nameSeq.substring (0, last); } else
  public String getParent ()  {    int last = path.lastIndexOf(separatorChar);    if (last == -1)      return null;    // FIXME: POSIX assumption.    if (last == 0 && path.charAt (0) == '/')      ++last;    return path.substring(0, last);  }