Foros del Web » Programación para mayores de 30 ;) » Java »

Abrir directorio para leer los archivos que contiene.

Estas en el tema de Abrir directorio para leer los archivos que contiene. en el foro de Java en Foros del Web. Hola, muy buenos días a todos.. estoy trabajando con una aplicación jsp para la cual tengo asignada una carpeta en un servidor para depositar ciertos ...
  #1 (permalink)  
Antiguo 03/05/2010, 09:20
 
Fecha de Ingreso: octubre-2009
Mensajes: 47
Antigüedad: 15 años, 1 mes
Puntos: 0
Exclamación Abrir directorio para leer los archivos que contiene.

Hola, muy buenos días a todos.. estoy trabajando con una aplicación jsp para la cual tengo asignada una carpeta en un servidor para depositar ciertos archivos (en este caso .doc) este servidor es distinto al servidor donde se aloja mi aplicación. Lo que tengo que hacer es abrir esa carpeta.. leer los archivos que contiene y como resultado mostrar cuales existen y cuales no, basandome en una lista de documentos pertenecientes a ciertos usuarios.

Con el siguiente codigo logro leer los archivos de cualquier carpeta, incluso su contenido... pero que se encuentra en el mismo servidor que la aplicación,


String path = "ruta/de/la/carpeta/enEl/servidor/";
File directorio = new File(path);
String [] ficheros = directorio.list();
String line;
for (int i = 0; i < ficheros.length; i++) {
try {
BufferedReader br = new BufferedReader(new FileReader(path + ficheros[i]));
out.println("Contenido del fichero " + ficheros[i]);
while ((line = br.readLine()) != null) {
out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}

no se como hacer para que los busque una carpeta de un servidor distinto., espero puedan ayudarme...

De antemano gracias.
  #2 (permalink)  
Antiguo 03/05/2010, 10:44
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Abrir directorio para leer los archivos que contiene.

Olvida que estás en java. ¿Cómo lo harías desde una sesión normal de tu servidor (línea de comandos, ventanas del sistema operativo o lo que sea? Por supuesto, sin hacer un telnet ni equivalente. ¿ftp? ¿path compartido o montado?

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 03/05/2010, 11:01
 
Fecha de Ingreso: marzo-2008
Mensajes: 39
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Abrir directorio para leer los archivos que contiene.

te refieres a leer los archivos por el lado del cliente desde tu aplicacion? si es con java, una forma sería con un applet firmado y que el usuario aceptara tal certificado para darte acceso a su máquina
  #4 (permalink)  
Antiguo 03/05/2010, 11:52
 
Fecha de Ingreso: octubre-2009
Mensajes: 47
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Abrir directorio para leer los archivos que contiene.

No pretendo leer los archivos de mi maquina, tampoco los del servidor que contiene la aplicación, si no de otro en el que se asigno la carpeta para alojar los archivos.

Leí algo sobre los applets firmados, no se si apliquen para mi caso o si solo abran el directorio raiz.

Nuevamente gracias.
  #5 (permalink)  
Antiguo 03/05/2010, 12:26
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Abrir directorio para leer los archivos que contiene.

A ver, no me entero.

Los ficheros que están en el otro servidor... ¿tienen que leerse desde el navegador o desde el servidor que contiene los jsp?.

Si es desde el navegador, puede valerte el applet firmado, pero un navegador con o sin applet no puede leer nada de un servidor si este no lo comparte de alguna forma (ftp, servidor web, etc).

Si es desde el servidor que contiene los jsp, el applet no vale. Tienes que hacerlo desde código java (jsp o servlet) en tu servidor. Igualmente, desde ahí no se podrá leer si el servidor no comparte de alguna forma ese directorio (ftp, directorio compartido, etc).

Por eso te pregunto, ¿cómo accedes a esos ficheros manualmente desde el servidor que contiene los jsp? o dicho de otra forma, ¿cómo permite el otro servidor el acceso a sus ficheros?

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #6 (permalink)  
Antiguo 03/05/2010, 12:32
 
Fecha de Ingreso: octubre-2009
Mensajes: 47
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Abrir directorio para leer los archivos que contiene.

Perdón tal vez no me explico bien., yo apenas lo entiendo.

Hay un servidor con una carpeta para alojar archivos ej. \\10.84.3.22
Otro servidro tiene mi aplicación ej. 10.84.1.207
Acceso a la aplicación desde mi maquina, para guardar los archivos solo pongo la dirección en ejecutar \\10.84.3.22 y me abre la carpeta, eso desde mi maquina, desde el servidor no se como hacerlo. :s
  #7 (permalink)  
Antiguo 03/05/2010, 13:51
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Abrir directorio para leer los archivos que contiene.

Desde el servidor, en tu código java, bastaría con lo mismo, abrir el directorio "\\10.84.3.22" con la clase File y luego preguntarle el contenido con el método list().

Esto funciona si cuando pones "\\10.84.3.22" no te pide usuario ni password y directamente permite el acceso.

Es posible que en tu código java tengas que "escapar" las \, por lo que tendrás que poner la friolera de cuatro barras

File directorio = new File("\\\\10.84.3.22");

Prueba a ver qué pasa...

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #8 (permalink)  
Antiguo 03/05/2010, 13:58
 
Fecha de Ingreso: marzo-2008
Mensajes: 39
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Abrir directorio para leer los archivos que contiene.

intentaste poner esa direccion en tu String path?

recuerda agregar las diagonales

\\\\10.84.3.22\\Tu_Directorio



por el momento solo lo pude probar de manera local con mi ip desde windows ( work) :S hasta mas tarde voy a mi linux haber que varía jeje


para cuando subí el post no vi que me gano chuidiang jaja,

saludos, pepe
  #9 (permalink)  
Antiguo 03/05/2010, 14:22
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Abrir directorio para leer los archivos que contiene.

je,je

Con linux no va, lo de \\ es sólo desde windows.
Con linux tienes que montar el directorio compartido del otro servidor y luego accedes a él como un directorio normal.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #10 (permalink)  
Antiguo 03/05/2010, 15:25
 
Fecha de Ingreso: octubre-2009
Mensajes: 47
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Abrir directorio para leer los archivos que contiene.

No he podido abrir el directorio, probe asi

1 String path = "\\\\10.84.3.22\\Digital\\";
2 File directorio = new File(path);
3 String [] ficheros = directorio.list();
4 String line;
5 for (int i = 0; i < ficheros.length; i++) {
6 try {
BufferedReader br = new BufferedReader(new FileReader(path + ficheros[i]));
out.println("Nombre del fichero " + ficheros[i]+"<br><br><br><br>");
while ((line = br.readLine()) != null) {
//out.println(line+"<br><br>");
}
} catch (IOException e) {
e.printStackTrace();
}
}

sera porque tengo que identificarme... el error es org.apache.jasper.JasperException: An exception occurred processing JSP page /bda/Contrataciones/DocExpediente.jsp at line 5

Última edición por govacsi; 03/05/2010 a las 15:32
  #11 (permalink)  
Antiguo 03/05/2010, 20:26
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Abrir directorio para leer los archivos que contiene.

Hola:

Abrelo como lo haces en tu ordenador, pero en el servidor, así verás si te pide usuario y pasword o no.
Prueba también desde java, pero ejecutando en tu ordenador, para ver si realmente funciona.
Yo suelo usarlo y el único problema que tengo es que a veces necesito haber entrado desde un explorador de windows en \\ip para que me pida la password y lo deje "montado" en "mis unidades de red".

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: directorio
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 14:00.