public String[] list() throws IOException {
  ArrayList<String> list=new ArrayList<String>();
  String pathname=_pathname;
  if (pathname.startsWith("/"))   pathname="." + pathname;
  ArrayList<PathImpl> pathList=((MergePath)_root)._pathList;
  for (int i=0; i < pathList.size(); i++) {
    PathImpl path=pathList.get(i);
    path=path.lookup(pathname);
    if (path.isDirectory()) {
      String[] subList=path.list();
      for (int j=0; subList != null && j < subList.length; j++) {
        if (!list.contains(subList[j]))         list.add(subList[j]);
      }
    }
  }
  return (String[])list.toArray(new String[list.size()]);
}

public String [ ] list ( ) throws IOException { ArrayList < String > list = new ArrayList < String > ( ) ; String pathname = _pathname ; if ( pathname . startsWith ( "/" ) ) pathname = "." + pathname ; ArrayList < PathImpl > pathList = ( ( MergePath ) _root ) . _pathList ; for ( int i = 0 ; i < pathList . size ( ) ; i ++ ) { PathImpl path = pathList . get ( i ) ; path = path . lookup ( pathname ) ; if ( path . isDirectory ( ) ) { String [ ] subList = path . list ( ) ; for ( int j = 0 ; subList != null && j < subList . length ; j ++ ) { if ( ! list . contains ( subList [ j ] ) ) list . add ( subList [ j ] ) ; } } } return ( String [ ] ) list . toArray ( new String [ list . size ( ) ] ) ; }
list the merged directories .
