La idea surgió de la radio de coche de mi padre, ¿no hay un iPod Shuffle. Entonces pensé

Dado que no aleatoriamente así, ¿por qué no poner los nombres de los archivos ya aleatorios?

Decidí tomar el tiempo en Java y se lo dio allí:

RandomFiles.java

 / RandomFiles.java * * * Copyright (C) 2009 Vítor Avelino * software * Este programa es gratuito: se puede redistribuirlo y / o modificarlo * bajo los términos de la GNU General Public License publicada por * la Free Software Foundation, ya sea la versión 3 de la Licencia, o * (a su elección) cualquier versión posterior. * * Este programa se distribuye con la esperanza de que sea útil, * pero SIN NINGUNA GARANTÍA, incluso sin la garantía implícita de * COMERCIABILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR.  * Consulte la GNU General Public License para más detalles. * * Debería haber recibido una copia de la GNU General Public License * junto con este programa.  Si no, see. * / Import java.io.File; java.util.Random public class RandomFile (privada aleatoriedad azar estática = new Random (); / ** * Randomize los archivos de un directorio específico. * * @ param directorio El directorio que tendrá su archivo de nombre * @ param subdir <code> true </ code> si los archivos de los subdirectorios tiene que ser cambiado el nombre * <code> false < / code> si no es necesario cambiar el nombre de los archivos de los subdirectorios "* / public static void randomize (string directorio, includeSubDirs boolean) (dir Archivo = new File (directorio) if (! dir.isDirectory () | |! dir.exists () ) (System.out.println (directorio + "no es un directorio o no existe!"); System.exit (-1);) System.out.println ( "Starting ..."); navigateInDirectories el cambio de nombre aleatorio (dir , includeSubDirs); System.out.println ( "Terminado !");) privado navigateInDirectories static void (File dir, includeSubDirs boolean) (nombre de archivo = null; randomNumber int = 0; for (File f: dir.listFiles ()) (do (randomizer.nextInt randomNumber = ();), mientras que (randomNumber <= 0) if (! f.isDirectory ()) (nombre = new File (FileUtil.getPath (f) + + randomNumber FileUtil.getExtension (f) ); f.renameTo (reelecto); System.out.println (">>> "f.getName + () +" renombrada a "+ + randomNumber FileUtil.getExtension (f));) else if (includeSubDirs) (Sistema de . out.println ( "-" + f.getName () + File.separator); navigateInDirectories (f, includeSubDirs );)))) 

FileUtil.java

 / FileUtil.java * * * Copyright (C) 2009 Vítor Avelino * software * Este programa es gratuito: se puede redistribuirlo y / o modificarlo * bajo los términos de la GNU General Public License publicada por * la Free Software Foundation, ya sea la versión 3 de la Licencia, o * (a su elección) cualquier versión posterior. * * Este programa se distribuye con la esperanza de que sea útil, * pero SIN NINGUNA GARANTÍA, incluso sin la garantía implícita de * COMERCIABILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR.  * Consulte la GNU General Public License para más detalles. * * Debería haber recibido una copia de la GNU General Public License * junto con este programa.  Si no, see. * / Java.io.File public class FileUtil (/ ** * Devuelve sólo el nombre de ruta de un archivo como cadena. * * @ Param f El archivo que se ha extraído la ruta * @ return La ruta de un archivo * / public static String getPath (File f) (f.getAbsolutePath AbsolutePath = String (); absolutePath.substring return (0, absolutePath.lastIndexOf (file. separador) + 1);) / ** * Devuelve la extensión de un archivo. * * @ param El archivo que tendrá la extensión extraídos <code> * @ return null </ code> si la extensión del archivo no existen, <code> <extensión / code> si el archivo tiene un * / public static String getExtension (File f) (String name = f.getName (); regreso name.substring (name.lastIndexOf ('.')); )) 

El formulario es sencillo de utilizar, un ejemplo que sigue a continuación:

 RandomFiles.randomize ( "D: \ Prueba \", false);
 RandomFiles.randomize ( "D: \ Prueba \", true);

Para la primera convocatoria de la salida es:

Inicialización de cambio de nombre al azar ...
>>> Arquivo1.PDF nombre 538981388.PDF
>>> Arquivo2.doc nombre 65861820.doc
>>> Arquivo3.html nombre 210904720.html
¡Terminado!

Para la segunda convocatoria, la salida es:

Inicialización de cambio de nombre al azar ...
>> 668609286.html nombre> 210904720.html
>>> 538981388.PDF nombre 573146098.PDF
>>> 65861820.doc nombre 417987190.doc
- Sub \
>>> Arquivo4.PDF nombre 233716363.PDF
>>> Arquivo5.doc nombre 657621617.doc
>>> Arquivo6.html nombre 118165004.html
¡Terminado!

Los mensajes salientes se utilizan sólo para supervisar la aplicación del programa.

Espero que sea útil a alguien como lo fue para mí. Cuando tenga tiempo voy a hacer una versión de Python y / o shell-script, y también instalar un SO decente (por ejemplo, vio a la basura, ¿verdad?) Aquí en el PC de la casa de mis padres.

Holiday ahora! : ~

java.io.File de importación;
java.util.Random public class RandomFile (privada aleatoriedad azar estática = new Random (); público aleatoriamente static void (String directorio, includeSubDirs boolean) (
Archivo dir = new File (directorio);
if (! dir.isDirectory () | |! dir.exists ()) (
System.out.println (directorio + "no es un directorio o no existe!");
System.exit (-1);
)

System.out.println ( "Starting ..."); el cambio de nombre al azar
navigateInDirectories (dir, includeSubDirs);
System.out.println ( "¡Terminado!");
)

privado navigateInDirectories static void (File dir, includeSubDirs boolean) (
Archivo renombrado = null;
int randomNumber = 0;

for (File f: dir.listFiles ()) (
do (
randomizer.nextInt randomNumber = ();
) Si bien (randomNumber <= 0);

if (! f.isDirectory ()) (
nombre = new File (FileUtil.getPath (f) + + randomNumber FileUtil.getExtension (f));
f.renameTo (reelecto);
System.out.println (">>> "f.getName + () +" renombrada a "+ + randomNumber FileUtil.getExtension (f));
) Else if (includeSubDirs) (
System.out.println ( "-" + f.getName () + File.separator);
navigateInDirectories (f, includeSubDirs);
)
)
)

public static void main (String [] args) (
RandomFiles.randomize ( "D: / test /", false);
)

)

Compartir:

  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • DZone
  • FriendFeed
  • Identi.ca
  • LinkedIn
  • Netvibes
  • Rec6
  • Reddit
  • RSS
  • StumbleUpon
  • Twitter
  • Mixx
  • Technorati

Artículos relacionados: