code: private boolean mkdir(boolean parent)
    {
      synchronized (_rootNode) {
        String fullPath = getFullPath();
  
        int head = 0;
        Node node = this._rootNode;
  
        while (node != null && head < fullPath.length()) {
          int tail = fullPath.indexOf('/', head);
          String name;
  
          if (tail == head) {
            head = tail + 1;
            continue;
          }
          if (tail == -1) {
            name = fullPath.substring(head);
            if (node.lookup(name) != null)
              return false;
            node.createDir(name);
            return true;
          }
  
          name = fullPath.substring(head, tail);
          Node next = node.lookup(name);
  
          if (next == null && parent)
            next = node.createDir(name);
  
          if (next == null || next.type != next.DIR)
            return false;
  
          node = next;
          head = tail + 1;
        }
  
        return false;
      }
    }
docs: XXX: could have iterator