elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Presentes en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  [SOLUCIONADO]listar directorios utilizando hilos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [SOLUCIONADO]listar directorios utilizando hilos  (Leído 8,161 veces)
danielo-

Desconectado Desconectado

Mensajes: 218


:)


Ver Perfil
[SOLUCIONADO]listar directorios utilizando hilos
« en: 4 Noviembre 2009, 18:35 pm »

De  nuez por aki, y como siempre preocupado porque no me sale el maldito codigo, espero puedan ayudarme, necesito listar un directorio, ya lo hago, pero cuando se trata de un directorio muy grande se tada mucho como era de esoerarse, entonces el profe nos recomendo utilizar hilos en el listado, pero ya intente de todo y nomas no me sale, porfa ayuda!!!, aki les dejo el codigo:

import java.awt.List;
import java.io.File;
import java.awt.List;
import java.util.Vector;

class Lista{
File [] lista;
List lArchivos,lPaths,lEnvio;
String dArchivos[],dPaths[],dEnvio[];
   
String [] path;
String [] list;
List ml,ml2;
Vector vc;
   
   public Lista(){
      lArchivos=new List();
      lPaths=new List();
      lEnvio=new List();
   }
   
   public Lista(List l,Vector x){
      vc=x;
      ml=l;
      ml2=new List();
   }
// aki empieza lo bueno   
   public void listar(File f){
      File [] lista=f.listFiles();
      
      for(int x=0;x<lista.length;x++){
         try{
         if(!lista
  • .isDirectory()){
            lArchivos.add(lista
  • .getName());
            lPaths.add(lista
  • .getAbsolutePath());
            lEnvio.add((lista
  • .length()+"b:"+lista
  • .getName()));
            System.out.println(lista
  • .length()+"b:"+lista
  • .getName());
         }
         
         if(lista
  • .isDirectory()){
            listar(lista
  • );
         }
         }
         catch(Exception e){
            System.out.println("exception 4");
         }
      }
               //hasta aki
      dArchivos=lArchivos.getItems();
      dPaths=lPaths.getItems();
      dEnvio=lEnvio.getItems();
   }
}


« Última modificación: 19 Agosto 2010, 07:44 am por LEYER » En línea

kinos

Desconectado Desconectado

Mensajes: 104



Ver Perfil
Re: listar directorios utilizando hilos
« Respuesta #1 en: 4 Noviembre 2009, 22:29 pm »

En esta parte:

// aki empieza lo bueno   
   public void listar(File f){
      File [] lista=f.listFiles();
     
creo que no te puedes librar de hacer "f.listFiles()" y utilizar una forma con multihilo (si hay no la sé).
Lo que sí puedes hacer es a partir de este punto emplear un hilo para listar recursivamente cada directorio. :huh: Bufff no se como podrías ir guardando la información de cada hilo... y muchos hilos no creo que sea bueno.


En línea

Leyer


Desconectado Desconectado

Mensajes: 786


leyer@elhacker.net


Ver Perfil WWW
Re: listar directorios utilizando hilos
« Respuesta #2 en: 5 Noviembre 2009, 00:19 am »

asi lo hice usando un hilo creo mas rapido y compacto imposible ::)
Código
  1. import java.io.File;
  2. import java.util.ArrayList;
  3. /*
  4.  * @author L-EYER
  5.  */
  6. public class listFiles extends Thread{
  7. private File file = null;
  8. private ArrayList<File> arrayListFiles     = new ArrayList<File>();
  9. private ArrayList<File> arrayListDir       = new ArrayList<File>();
  10. private ArrayList<File> arrayListFilesHiden= new ArrayList<File>();
  11. int size = 0;
  12. private File[]         list        = null;
  13. public listFiles(String path){
  14. super(":");
  15. setPriority(MAX_PRIORITY);
  16. file = new File(path);
  17. }
  18. @Override
  19. public void run() {
  20. list = file.listFiles();
  21. size = list.length;
  22. for(int index=0;index<size;index++){
  23.      if(list[index].isFile()){     arrayListFiles     .add(list[index]);
  24. }else if(list[index].isDirectory()){arrayListDir       .add(list[index]);
  25. }else if(list[index].isHidden()){   arrayListFilesHiden.add(list[index]);
  26. }
  27. }
  28. System.out.println("- [Directorios] -");
  29. System.out.println(arrayListDir);
  30. System.out.println("\n");
  31. System.out.println("-  [Archivos]   -");
  32. System.out.println(arrayListFiles);
  33. }
  34. public ArrayList<File> getArrayListFiles() {
  35. return arrayListFiles;
  36. }
  37. public void setArrayListFiles(ArrayList<File> arrayListFiles) {
  38. this.arrayListFiles = arrayListFiles;
  39. }
  40. public ArrayList<File> getArrayListDir() {
  41. return arrayListDir;
  42. }
  43. public void setArrayListDir(ArrayList<File> arrayListDir) {
  44. this.arrayListDir = arrayListDir;
  45. }
  46. }
  47. class mainClass{
  48. public static void main(String[] args){
  49. String path = "C:\\WINDOWS\\System32";
  50. if(new File(path).exists()){
  51. listFiles listfiles = new listFiles(path);
  52. listfiles.start();
  53. }
  54. }
  55. }
  56.  

Saludos gente.
« Última modificación: 5 Noviembre 2009, 00:43 am por L-EYER » En línea

Leyer


Desconectado Desconectado

Mensajes: 786


leyer@elhacker.net


Ver Perfil WWW
Re: listar directorios utilizando hilos
« Respuesta #3 en: 5 Noviembre 2009, 00:45 am »

no se como cuantos archivos quieres listar pero mi metodo lista el system32 en menos de 2 sg :rolleyes:

En línea

cyberserver

Desconectado Desconectado

Mensajes: 162


Lo que una mente crea, otra lo destruye


Ver Perfil WWW
Re: listar directorios utilizando hilos
« Respuesta #4 en: 5 Diciembre 2009, 06:36 am »

otro codigo
Código:
File dir = new File("C:\\Users\\Los_flais\\Documents");
    String[] ficheros = dir.list();
    if (ficheros == null)
  System.out.println("No hay ficheros en el directorio especificado");
else {
  for (int x=0;x<ficheros.length;x++)
    JOptionPane.showMessageDialog(null,ficheros[x]);
}

sta padre pero no es lo que busco, pues solo me muestra los archivos que estan sobre la ruta que yo di mas no los que estan dentro de las subcarpetas.... el codigo que viene aii es casi igual al que puse en este tema!!!

Si alguien me puede ayudar con esto seria fantastico
Lo que intento hacer es como un tree
En línea






1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: listar directorios utilizando hilos
« Respuesta #5 en: 5 Diciembre 2009, 07:10 am »

otro codigo
Código:
File dir = new File("C:\\Users\\Los_flais\\Documents");
    String[] ficheros = dir.list();
    if (ficheros == null)
  System.out.println("No hay ficheros en el directorio especificado");
else {
  for (int x=0;x<ficheros.length;x++)
    JOptionPane.showMessageDialog(null,ficheros[x]);
}

sta padre pero no es lo que busco, pues solo me muestra los archivos que estan sobre la ruta que yo di mas no los que estan dentro de las subcarpetas.... el codigo que viene aii es casi igual al que puse en este tema!!!

Si alguien me puede ayudar con esto seria fantastico
Lo que intento hacer es como un tree

Casi igual de donde??  :xD

Cómo???, por que dices que no te sirve?  :xD, si te lista los subdirectorios
Utiliza tu imaginación :xD :xD

Saludos
En línea

abc
cyberserver

Desconectado Desconectado

Mensajes: 162


Lo que una mente crea, otra lo destruye


Ver Perfil WWW
Re: listar directorios utilizando hilos
« Respuesta #6 en: 5 Diciembre 2009, 07:21 am »

La accion de los codigos es similar...... no me referia a tamaño o sintaxis  :rolleyes:


Pues si se podia usar la imaginacion usando recursividad pero es un trabajo muy laborioso es por ello que busco otras soluciones .

Pero pues seguire buscando suerte!!!
En línea






cyberserver

Desconectado Desconectado

Mensajes: 162


Lo que una mente crea, otra lo destruye


Ver Perfil WWW
Re: listar directorios utilizando hilos
« Respuesta #7 en: 5 Diciembre 2009, 09:26 am »

lo encontre por aii no eran tan dificil si lo analizamosss eaea

Código:

import java.io.File;


public class ListarDirectorioRecursivamente {

       
        public static void listarDirectorio(File f, String separador){
                File[] ficheros = f.listFiles();
                               
                for (int x=0;x<ficheros.length;x++){                   
                        System.out.println(separador + ficheros[x].getName());
                       
                        if (ficheros[x].isDirectory()){
                                String nuevo_separador;
                                nuevo_separador = separador + " ";
                                listarDirectorio(ficheros[x],nuevo_separador);
                        }
                }     
        }
       
       
        public static void main(String[] args) {
               
                String sDirectorio = "c:\\windows";
                File directorio = new File(sDirectorio);
               
                listarDirectorio(directorio,"");

        }

}

En línea






Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Solucionado]Duda funcionamiento Thread/Hilos
Java
NetJava 6 4,135 Último mensaje 25 Marzo 2011, 16:29 pm
por NetJava
¿Subir un archivo en dos directorios? (Solucionado)
Desarrollo Web
Clavo Oxidado 1 1,358 Último mensaje 26 Noviembre 2014, 12:01 pm
por Clavo Oxidado
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines