/**
 * recursive directory deletion
 */
static void deleteDirectory( File dir ) {
  File[] files = dir.listFiles();
  for ( File file : files ) {
    if ( file.isDirectory() ) {
      deleteDirectory( file );
    } else {
      file.delete();
    }
  }
  dir.delete();
}