La idea surgió desde el estéreo del coche de mi padre, no hay un iPod Shuffle. Entonces pensé:

Como no randomises así, ¿por qué no poner los nombres de archivo ya al azar?

Rápidamente decidió que hacer en Java y se lo dio allí:

RandomFiles.java

 / RandomFiles.java * * * Copyright (C) 2009 Vítor Avelino * * Este programa es software libre: usted puede redistribuirlo y / o modificarlo * bajo los términos de la Licencia Pública General GNU * las publicadas por la Fundación para el Software Libre, O 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 será útil, * pero SIN NINGUNA GARANTÍA, incluso sin la garantía implícita de * o IDONEIDAD PARA UN PROPÓSITO PARTICULAR.  * Vea la GNU General Public License para más detalles. * * Debería haber recibido una copia de la Licencia Pública General GNU * junto con este programa.  Si no, véase <http://www.gnu.org/licenses/>. * / Java.io.File de Importación; java.util.Random importación; public class RandomFile (estática azar aleatorio privada = nueva azar (); / * Selección aleatoria de los archivos de un determinado directorio. * * @ param directorio ** El directorio, que tendrá su nuevo nombre de archivo * @ param subdir <code> true </ code> si 'los archivos de los subdirectorios nombre * son obligatorios <code> false < / code> si es necesario "cambiar el nombre de los archivos de los subdirectorios * / no estático public void aleatoriamente (directorio de cuerdas, includeSubdirs booleano) (dir archivo = new File (directorio) if (! dir.isDirectory () | |! dir.exists () ) (System.err.println (+ directorio "no es un directorio o no existe!") System.exit (-1);) System.out.println ("Iniciando el cambio de nombre al azar navigateInDirectories ..."); (dir , includeSubdirs) System.out.println ("Terminado !");) estática navigateInDirectories private void (dir Archivo, includeSubdirs booleano) (nuevo nombre de archivo = null; int RandomNumber = 0; for (archivo f: dir.listFiles ()) (hacer (randomizer.nextInt RandomNumber = ();), mientras que (RandomNumber <= 0) if (! f.isDirectory ()) (nombre = new File (FileUtil.getPath (f) + + RandomNumber FileUtil.getExtension (f) ); f.renameTo (cambiado el nombre) System.out.println (">>> "f.getName + () +" renombrado 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 * * Este programa es software libre: usted puede redistribuirlo y / o modificarlo * bajo los términos de la Licencia Pública General GNU * las publicadas por la Fundación para el Software Libre, O 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 será útil, * pero SIN NINGUNA GARANTÍA, incluso sin la garantía implícita de * o IDONEIDAD PARA UN PROPÓSITO PARTICULAR.  * Vea la GNU General Public License para más detalles. * * Debería haber recibido una copia de la Licencia Pública General GNU * junto con este programa.  Si no, véase <http://www.gnu.org/licenses/>. * / Java.io.File de Importación; public class FileUtil (/ * Devuelve ** solo la ruta de un archivo como cadena. * * @ Param f El archivo que tendrá la ruta extraídos * @ return La ruta de acceso del archivo * / public String getPath estática (Archivo f) (String AbsolutePath f.getAbsolutePath = (); retorno absolutePath.substring (0, absolutePath.lastIndexOf (file. separador) + 1);) / ** * Devuelve la extensión del archivo. * * @ param La extensión del archivo que tendrá la <code> extraídos * @ null <regresar / code> si la extensión del archivo no existen, <code> extensión </ code> si el archivo tiene una * / public String getExtension estática (Archivo f) (String name = f.getName (); retorno name.substring (name.lastIndexOf ('.')); )) 

El formulario es simple de usar, 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:

Iniciando el cambio de nombre al azar ...
>>> Arquivo1.PDF renombrado 538981388.PDF
>>> Arquivo2.doc renombrado 65861820.doc
>>> Arquivo3.html renombrado 210904720.html
¡Terminado!

Para la segunda convocatoria la salida es:

Iniciando el cambio de nombre al azar ...
>>> Cambiado el nombre a 210904720.html 668609286.html
>> 538981388.PDF> renombrado 573146098.PDF
>>> Renombrado 417987190.doc 65861820.doc
- Sub \
>>> Arquivo4.PDF renombrado 233716363.PDF
>>> Arquivo5.doc renombrado 657621617.doc
>>> Arquivo6.html renombrado 118165004.html
¡Terminado!

Los mensajes salientes son utilizados sólo para vigilar 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, ¿no?) Aquí en la PC de la casa de mis padres.

Vacaciones ahora! : ~

java.io.File importación;
java.util.Random importación; public class RandomFile (aleatorio estática privada azar = nueva azar (); public void aleatoriamente (directorio de cuerdas, includeSubdirs booleano) (
Archivo dir = new File (directorio);
if (! dir.isDirectory () | |! dir.exists ()) (
System.err.println (+ directorio "no es un directorio o no existe!");
System.exit (-1);
)

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

navigateInDirectories privado void (dir Archivo, includeSubdirs booleano) (
Renombrado de archivos = null;
RandomNumber int = 0;

de (Archivo f: dir.listFiles ()) (
hacer (
RandomNumber randomizer.nextInt = ();
) Mientras (RandomNumber <= 0);

if (! f.isDirectory ()) (
nombre = new File (FileUtil.getPath (f) + + RandomNumber FileUtil.getExtension (f));
f.renameTo (cambiado el nombre);
System.out.println (">>> "f.getName + () +" renombrado a "+ + RandomNumber FileUtil.getExtension (f));
) Else if (includeSubdirs) (
System.out.println ("-" + f.getName () + file.separator);
navigateInDirectories (f, includeSubdirs);
)
)
)

public void (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: