Java Directory Backup

Questa porzione di codice esegue il backup del contenuto di una directory. Si può utilizzare per salvare il contenuto prima di scrivere altri file al suo interno.

File saveDir = new File(SAVE_DIR_PATH);
//
if( saveDir.exists() && saveDir.listFiles().length>0){
  File parent = saveDir.getParentFile();
  String name = saveDir.getName();
  int i=0;
  File bkDir;
  do{
    bkDir = new File(parent, String.format(name + "_%04d", i++));
  }
  while(bkDir.exists() && i<9999);
  // sposta la dir corrente
  System.out.println("Backup - dir: " + saveDir + " to " + bkDir.getName());
  if( !saveDir.renameTo(bkDir) ){
    throw new RuntimeException("Impossible to rename dir: " + saveDir);
  }
  // crea nuova dir
  saveDir.mkdirs();
}
// qui posso scrivere all'interno della directory