package zendo.playground.utils;
import java.io.File;
import java.io.FilenameFilter;
import java.util.*;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* Randomly renames MP3 files using {@link UUID} as source for names.
*
* @author mocanu
*/
public class Mp3RandomRenamer {
private static Log log = LogFactory.getLog( Mp3RandomRenamer.class );
private static final String TARGET_FOLDER = "G:/ACME Files/Nunta/CD Muzica";
private static List<Integer> generatedNumbers = new ArrayList<Integer>();
private static Random randomNumberGenerator = new Random();
public static void main( String[] args ) {
File targetFolder = new File( TARGET_FOLDER );
if ( !targetFolder.exists() ) {
log.error( "Cannot find the TARGET_FOLDER=" + TARGET_FOLDER );
System.exit( 1 );
}
File[] fileArray = targetFolder.listFiles( new FilenameFilter() {
@Override
public boolean accept( File dir, String name ) {
return (name.toUpperCase().endsWith( "MP3" ));
}
} );
for ( File file : fileArray ) {
log.info( "Processing " + file.getAbsolutePath() );
String newFileName = TARGET_FOLDER + "/" + generateNewRandomNumber( fileArray.length ) + "- "
+ file.getName();
log.info( "New file name: " + newFileName );
if ( !file.renameTo( new File( newFileName ) ) ) {
log.error( "Failed renaming file " + file.getAbsolutePath() );
}
}
log.info( "Done!" );
}
private static int generateNewRandomNumber( int nrOfTotalFiles ) {
int randomNumber = 0;
do {
randomNumber = randomNumberGenerator.nextInt( nrOfTotalFiles ) + 1;
} while ( generatedNumbers.contains( randomNumber ) );
generatedNumbers.add( randomNumber );
return randomNumber;
}
// private static String generateNewRandomName() {
// String uuidStr = UUID.randomUUID().toString();
// return uuidStr.replaceAll( "-", "" );
// }
}