Newsgroup: it.comp.java
Titolo: lettura risorsa web

Ho bisogno di leggere una cartella web. Come posso fare? per leggere una 
cartella locale scrivo una cosa del tipo:
String [] lista = new File(".").list();
come posso fare se il file che mi serve si trova nella cartella 
http://localhost:8080/cartella/
 ?
-- 
TIA 


"
http://localhost:8080/cartella/
"
non mi smbra una cartella, fammi pensare... assomiglia ad un URL....
javadoc -> URL
guarda guarda che metodo ho trovato:
   public final InputStream openStream() throws IOException
javadoc -> InputStream
uhh estende DataInputStream, proprio quello che volevamo ;-)))
(anche google aiuta)
PS è un "http" url e non una cartella locale, è quindi con un web server 
che che devi comunicare e non con un SO ...
Mauro

 (anche google aiuta)
Sei sicuro che così ti arriva qualcosa che asomigli al contenuto della 
cartella?


...non per fare polemica ;-)
beh ho indicato l'incipit, vuoi che gli scriva anche il codice?
poi, ...quando si taglia un messaggio in un suo importante passaggio è 
meglio evidenziarlo ;-) cmq lo riporto:
PS è un "http" url e non una cartella locale, è quindi con un web server 
che che devi comunicare e non con un SO ...
Quindi, web server permettendo, basta parsare la risposta (forse href? 
regexp?).
con 3 righe di codice java (ai programmatori + esperti trovare il codice 
:D) e tomcat ho ottenuto da "
http://localhost:8080/cartella/
":
<html>
<head>
<title>Directory Listing For /</title>
<STYLE><!--H1 
{font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} 
H2 
{font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} 
H3 
{font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} 
BODY 
{font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} 
B 
{font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} 
P 
{font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A 
{color : black;}A.name {color : black;}HR {color : #525D76;}--></STYLE> 
</head>
<body><h1>Directory Listing For /</h1><HR size="1" noshade><table 
width="100%" cellspacing="0" cellpadding="5" align="center">
<tr>
<td align="left"><font size="+1"><strong>Filename</strong></font></td>
<td align="center"><font size="+1"><strong>Size</strong></font></td>
<td align="right"><font size="+1"><strong>Last Modified</strong></font></td>
</tr><tr>
<td align="left">&nbsp;&nbsp;
<a 
href="/cartella/Copia%20di%20Copia%20di%20Copia%20di%20Copia%20di%20File%201.txt"><tt>Copia 
di Copia di Copia di Copia di File 1.txt</tt></a></td>
<td align="right"><tt>0.0 kb</tt></td>
<td align="right"><tt>Sun, 21 Nov 2004 10:55:08 GMT</tt></td>
</tr>
<tr bgcolor="#eeeeee">
<td align="left">&nbsp;&nbsp;
<a 
href="/cartella/Copia%20di%20Copia%20di%20Copia%20di%20File%201.txt"><tt>Copia 
di Copia di Copia di File 1.txt</tt></a></td>
<td align="right"><tt>0.0 kb</tt></td>
<td align="right"><tt>Sun, 21 Nov 2004 10:55:08 GMT</tt></td>
</tr>
<tr>
<td align="left">&nbsp;&nbsp;
<a href="/cartella/Copia%20di%20Copia%20di%20File%201.txt"><tt>Copia di 
Copia di File 1.txt</tt></a></td>
<td align="right"><tt>0.0 kb</tt></td>
<td align="right"><tt>Sun, 21 Nov 2004 10:55:08 GMT</tt></td>
</tr>
<tr bgcolor="#eeeeee">
<td align="left">&nbsp;&nbsp;
<a href="/cartella/Copia%20di%20File%201.txt"><tt>Copia di File 
1.txt</tt></a></td>
<td align="right"><tt>0.0 kb</tt></td>
<td align="right"><tt>Sun, 21 Nov 2004 10:55:08 GMT</tt></td>
</tr>
<tr>
<td align="left">&nbsp;&nbsp;
<a href="/cartella/File%201.txt"><tt>File 1.txt</tt></a></td>
<td align="right"><tt>0.0 kb</tt></td>
<td align="right"><tt>Sun, 21 Nov 2004 10:55:08 GMT</tt></td>
</tr>
</table>
<HR size="1" noshade><h3>Apache Tomcat/5.0.18</h3></body>
</html>

 beh ho indicato l'incipit, vuoi che gli scriva anche il codice?
Sia chiaro, mi è sfuggito lo smile ;-) e non volevo fare polemica 
nemmeno io.
Come mi è sfuggito di chiarire il mio intervento che non voleva essere 
una ripicca fine a se stessa.
Il punto è che la risposta "corretta" è che il list del contenuto di una 
directory web (http, non ftp) non esiste; la tua soluzione sai meglio di 
me restituisce una pagina html che può contenere il listato della 
directory ma solo se il server è configurato per farlo (e la norma è che 
non sia così). Inoltre anche parsare la risposta non mi pare così 
banale; la pagina eventualmente restituita dipende dal webserver nella 
migliore delle ipotesi, altrimenti dalla fantasia del webmaster (è una 
pagina dinamica come un'altra).
E' vero che hai fatto la precisazione in PS, ma è anche vero che hai 
fatto diverse puntualizzazioni sulla "scontatezza" della soluzione :-) A 
me non sembrava così scontata, tutto quì.

 sembrava cosě scontata, tutto quě. 

 sembrava cosě scontata, tutto quě. 

 
prima di procedere (vista la puntualizzazione di Vincent ;-) ) prova ad 
aprire il browser ed inserire l'indirizzo della cartella che vuoi 
visualizzare...
non compare niente? se non ci puoi mettere le mani sopra allora non puoi 
neanche andare avanti, come se sul tuo PC non avessi i diritti di 
accedere ad una cartella.
Se compare qlcosa... allora lascia perdere un po' File e guarda URL.
(ripeto, su google trovi codice e documentazione)
Mauro

 
puoi sempre usare un framework che ti restituisca la lista dei files... 
ad es. una piccola servlet jsp che restituisca solo la lista dei files 
senza tags html :)
Mauro


vista la domanda, non ho pensato che fosse un esperto di web e neanche 
di java, quindi mi è parso quasi scontato che utilizzasse un web server 
in casa, (apache/tomcat? ...solo per la semplicità) senza configurarlo 
... quindi la lista dei files viene restituita; se invece fosse capace 
di configurare il web server avrebbe potenzialmente le conoscenze per, 
eventualmente, realizzare una semplice servlet che restituisca proprio 
la lista dei files (framework permettendo).
La risposta "corretta" sarebbe allora "dipende" dalla protezione, dai 
"programmi" (leggi servizi web), .... che sono a disposizione.
*analogie:*
Se sono il proprietario
- SO: comando lista files -- dir.exe (del SO)
- WS: comando lista files -- dir.jsp (lo faccio io)
Se non sono il proprietario
- SO: l'amministratore può bloccare/permettere la lettura/scrittura sei 
files
- WS: idem (o quasi ;-) )
si, so' che ho dato per scontato che c'è un servlet o asp container...
ma volevo solo evidenziare che ci sono molti fattori in gioco (e magari 
ne manca uno di quelli basilari come un sevlet o asp container ;-) ) ma 
per le prove casalinghe puo' andare bene...
Mauro