public boolean makeDirectory(String path, String owner) {
		if (path == null || path.isEmpty())
			return false;
		FSElement element = getPathDir(path);
		if (element != null)	// already exists
			return false;
		// trim "/" at the end
		while (path.endsWith(pathSeparator) && path.length()>=2)
			path = path.substring(0, path.length()-1);
		FSElement parent = current;
		int index = path.lastIndexOf(pathSeparator);
		if (index>=0) {
			parent = getPathDir(path.substring(0, index+1));
			if (parent == null || parent.isLeaf())
				return false;
			path = path.substring(index+1, path.length());
		}
		if (path.startsWith(currentPath))	// a trivial check of dir name
			return false;
		Directory child = new Directory(path, (Directory) parent, new Date());
		child.setOwner(owner);
		addChild((Directory) parent, child);
		return true;
	}