#include <more/io/filesys.h>
#include <more/io/directory.h>
#include <iostream>

void ls(const std::string &pfad) {
  more::io::file_status status(pfad);
  if(!status.exists())
    std::cerr << "Pfad '" << pfad << "' existiert nicht\n";
  else
    std::cout << pfad << std::endl;

  if(status.is_directory()) {
    more::io::directory dir(pfad);
    for(more::io::directory::iterator i=dir.begin();
	i!=dir.end();
	++i)
      if(*i!=".." && *i!=".") {
	if(pfad[pfad.size()-1]!='/')
	  ls(pfad+'/'+*i);
	else
	  ls(pfad+*i);
      }
  }
}

int main(int argc,char **argv) {
  if(argc > 1)
    for(int i=1;i<argc;++i) {
      ls(argv[i]);
    }
  else {
    std::cerr << "usage: " << *argv << " <pfad> ..." << std::endl;
    return 1;
  }
}
