Listar contenido del ordenador

19/Sep/2011 Java , 1 Comentario

En este ejemplo vamos a ver como podemos listar todo el contenido del ordenador, es decir, ver todos los ficheros de las diferentes unidades de nuestro sistema (disco duro, tartejas SD, DVD,...).

Para poder listar el contenido del ordenador solo tenemos que aplicar lo explicado en los artículos listar un directorio de forma recursiva en Java y unidades del sistema de ficheros con java.

Y es que en el fondo, las unidades del sistema son directorios en si mismo que podemos recorrer. Así tenemos que recorrer las unidades del sistema, recordemos que para obtener las unidades utilizamos el método .listRoots() de la clase File.

  1. File[] roots = File.listRoots();
  2. for (int i=0; i<roots.length; i++) {
  3. System.out.println("--- LISTANDO UNIDAD " + roots[i] + " ---");
  4. listarDirectorio(roots[i],"");
  5. }

Por cada unidad del sistema llamaremos al método recursivo listarDirectorio(), el cual, como vimos en listar un directorio de forma recursiva en Java, nos va mostrando los ficheros que contiene cada directorio y si el fichero es un directorio en sí mismo, se vuelve a llamar de forma recursiva.

Veamos su código:

  1. public static void listarDirectorio(File f, String separador){
  2. File[] ficheros = f.listFiles();
  3. if (ficheros!=null){
  4. for (int x=0;x<ficheros.length;x++){
  5. System.out.println(separador + ficheros[x].getName());
  6.  
  7. if (ficheros[x].isDirectory()){
  8. String nuevo_separador;
  9. nuevo_separador = separador + " ";
  10. listarDirectorio(ficheros[x],nuevo_separador);
  11. }
  12. }
  13. }
  14. }

Hay que tener cuenta que ciertos sistemas de archivos dan problema al obtener el listado de ficheros, es por ello que comprobamos si el objeto ficheros tiene contenido.

Vídeos sobre Java


Difunde el Conocimiento

Si te ha gustado el artículo o te ha sido de utilidad, no dejes de compartirlo con tus amigos en las redes sociales... Te estaremos muy agradecidos. :-D

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*