Foros del Web » Programando para Internet » Javascript »

Cómo buscar un directorio sólo sabiendo como empieza el nombre

Estas en el tema de Cómo buscar un directorio sólo sabiendo como empieza el nombre en el foro de Javascript en Foros del Web. Buenas, supongamos la siguiente estructura de directorios: - dir1 - subdir1 - subdir2 - subdir3 - dir2 - subdir1 - subdir2 - subdir3 Existen cantidad ...
  #1 (permalink)  
Antiguo 04/01/2019, 06:39
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 565
Antigüedad: 22 años, 2 meses
Puntos: 4
Cómo buscar un directorio sólo sabiendo como empieza el nombre

Buenas, supongamos la siguiente estructura de directorios:
- dir1
- subdir1
- subdir2
- subdir3
- dir2
- subdir1
- subdir2
- subdir3

Existen cantidad de directorios, y dentro de los directorios 3 subdirectorios con el mismo nombre.
Necesito, por ejemplo, un documento que se encuentra en dir2\subdir2, y el problema está que el nombre completo de dir2 lo desconozco, sólo sé los 9 primeros carácteres. Por ejemplo
- 1111-11 | afasdfafa
- subdir1
- subdir2
- subdir3
- 2222-22 | xxxxxxxxx
- subdir1
- subdir2
- documento1.pdf
- subdir3
Yo sé, por ejemplo, 2222-22 | pero no sé el resto, es decir, desconozco xxxxxx

Resumiendo, cómo puedo visualizar documento1.pdf, sólo sabiendo que está en la carpeta 2222-22 ... \subdir2

Muchas gracias.
__________________
Qué fácil cuando lo sabes y qué difícil cuando no

Última edición por mblascog; 04/01/2019 a las 07:52
  #2 (permalink)  
Antiguo 04/01/2019, 09:04
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 1 mes
Puntos: 1146
Respuesta: Cómo buscar un directorio sólo sabiendo como empieza el nombre

volviendo a programar tu sistema y crear una estructura con lógica, guarda todo en una base de datos o ya de menos ve a revisar el ftp para que conozcas como esta organizado y ajustes tu código.
  #3 (permalink)  
Antiguo 04/01/2019, 11:31
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 9 meses
Puntos: 263
Respuesta: Cómo buscar un directorio sólo sabiendo como empieza el nombre

te va a tocar codear de nuevo, porque un sistema así no tiene lógica. Tan simple que es utilizar las bases de datos para organizarlo todo.
__________________
[email protected]
HITCEL
  #4 (permalink)  
Antiguo 05/01/2019, 07:41
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 565
Antigüedad: 22 años, 2 meses
Puntos: 4
Respuesta: Cómo buscar un directorio sólo sabiendo como empieza el nombre

Seguro que no me he explicado bien, pues las respuestas no responden a la pregunta.
Sería algo parecido a:
Código Javascript:
Ver original
  1. function checkfolder()
  2.     {
  3.         var myObject;
  4.         myObject = new ActiveXObject("Scripting.FileSystemObject");
  5.         if(myObject.FolderExists("c:\\tmp")){
  6.             alert("tmp Folder Exists");
  7.         }  else {
  8.             alert("tmp Folder doesn't exist");
  9.        }
  10.     }

Pero en lugar de poner el directorio entero, los nuevos primeros carácteres. Siguiendo el ejemplo:
Código Javascript:
Ver original
  1. if(myObject.FolderExists("2222-22*")){
__________________
Qué fácil cuando lo sabes y qué difícil cuando no

Última edición por mblascog; 05/01/2019 a las 07:49
  #5 (permalink)  
Antiguo 05/01/2019, 16:20
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 9 meses
Puntos: 263
Respuesta: Cómo buscar un directorio sólo sabiendo como empieza el nombre

Bueno bro, ya que nos llamaste brutos, te explico lo siguiente, no se si desde js se pueda hacer eso, pues ese código que indicas allí funciona creo solo en IE, por otro lado, yo delegaría esa tarea a php y que sea este quien me retorne la lista en cuestion ayudandome con expresiones regulares, por ejemplo:

Supongamos que tenemos una estructura de carpetas de esta manera:

/direct/2154-55-8478
/direct/222-22-4145
/direct/222-22-4585

Yo desde mi vista utilizaría ajax para hacer la peticion a mi php de esta manera:


Código Javascript:
Ver original
  1. var buscar = '2222-22';
  2.  
  3.     $.post('verifica.php',{folder:buscar}).done(function(resp){
  4.         if(resp !="201"){
  5.             var carpetas = eval("("+resp+")");
  6.             console.log(carpetas);
  7.         }
  8.     }).fail(function(err){
  9.  
  10.     })

y en mi php tendría el siguiente código:

Código PHP:
Ver original
  1. $base = './direct/';
  2. $patron = $_POST['folder']??'';
  3. $sale = [];
  4.  
  5. if($patron!=""){
  6.     if(is_dir($base)){
  7.         if($abre = opendir($base)){
  8.             while(($archivo = readdir($abre)) !== false){
  9.                 if($archivo !="." && $archivo !=".."){
  10.                     if(filetype($base . $archivo) == "dir"){
  11.                         preg_match('/('.$patron.')+(-.*)/', $archivo, $salida);
  12.                         if(is_array($salida) && count($salida)>0){
  13.                             array_push($sale,$salida[0]);
  14.                         }
  15.                     }
  16.                 }
  17.             }
  18.             closedir($abre);
  19.         }
  20.     }
  21.     echo (count($sale)>=1) ? json_encode($sale) : "201";
  22. }else{
  23.     echo "201";
  24. }

esto retornaría un 201 si no existe la información buscada o si por el contrario no se envio el valor, por ejemplo:

["2222-22-4145","2222-22-4585"]

y bueno, como se te informó más arriba, la recomendación era que utilizaras bases de datos para estos menesteres, pues es mejor y más fácil hacer un mantenimiento, pero bueno, cada quien con su sistema.

Saludos Bro.
__________________
[email protected]
HITCEL
  #6 (permalink)  
Antiguo 07/01/2019, 08:43
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 1 mes
Puntos: 1146
Respuesta: Cómo buscar un directorio sólo sabiendo como empieza el nombre

Como dato adicional, hacer lo que pretendes con javascript es imposible, ya que este trabaja a nivel local y lo que tu buscas es a nivel servidor.

Todos pero todos los navegadores te lo van a prohibir, salvo la basura de IE en viejas versiones, la reciente parece que ya no se permite.
Aparte que seria una grabe falla de seguridad para el usuario y para tu sistema.

Etiquetas: directorio, empieza, nombre
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:20.