public Directory getLastDirectory(String path, Directory currentDir, User currentUser) throws FileUnknownException, PathIsTooBigException, AccessDeniedException { if (path.equals("/")) { getSlash().checkAccessEx(currentUser); return getSlash(); } if (path.equals(".")) return currentDir; else if (path.equals("..")) { currentDir.getFather().checkAccessEx(currentUser); return currentDir.getFather(); } Directory beforeLast = absolutePath(path, currentUser, currentDir); String[] tokens = path.split(PATH_DELIM); String name = tokens.length == 0 ? path : tokens[tokens.length - 1]; beforeLast.checkAccessEx(currentUser); beforeLast.changeDirectory(name, currentUser); return (Directory) beforeLast.getFileByName(name); }
private Directory changeDirectory( String directoryName, Directory currentDirectory, User currentUser) throws FileUnknownException, AccessDeniedException { currentDirectory.checkAccessEx(currentUser); return currentDirectory.changeDirectory(directoryName, currentUser); }