Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 19-07-2005, 14:35   #1
fbcyborg
Senior Member
 
L'Avatar di fbcyborg
 
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
[JAVA] LIST per FTP Server

Ciao Ragazzi, ho bisogno sul serio di un vostro consiglio. Ho quasi terminato la realizzazione di un server FTP secondo le rfc 959. C'è solo una cosa che non riesco a fare...
Quando il server riceve un LIST, invia il contenuto della directory locale al client. Ho assoluto bisogno di sapere come produrre in java un listato simile a questo:
Codice:
drwxrwxr-x    2    root    bin   7168  Mar  18 05:13 .
drwxrwxr-x  25    root    sys   1024  Jan    7 09:16 ..
-r-sr-xr-x     1    root    bin   32868 Jan   29 05:13 login
-r-xr-xr-x     1    bin      bin  17500  Oct  25 1995  ls
-r-x--s--x    1    bin      mail 66208  Jan    6 20:16 mail
ovvero il risultato di un "ls -al" unix fattibile anche da windows.
Grazie mille.. spero che mi aiutiate a risolvere il problema!
__________________
^ThE CyBoRg^
fbcyborg è offline   Rispondi citando il messaggio o parte di esso
Old 19-07-2005, 16:01   #2
ally
Bannato
 
L'Avatar di ally
 
Iscritto dal: Jan 2003
Città:
Messaggi: 4423
...mh...penso tu debba ricreartelo esegundo per ogni file comandi come MDTM e SIZE...

...ciao...
ally è offline   Rispondi citando il messaggio o parte di esso
Old 19-07-2005, 19:47   #3
fbcyborg
Senior Member
 
L'Avatar di fbcyborg
 
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
ciao, grazie x il supporto innanzi tutto..
per favore potresti essere un po' più preciso che non conosco tali sistemi???
__________________
^ThE CyBoRg^
fbcyborg è offline   Rispondi citando il messaggio o parte di esso
Old 19-07-2005, 20:35   #4
ally
Bannato
 
L'Avatar di ally
 
Iscritto dal: Jan 2003
Città:
Messaggi: 4423
...ci sono diversi modi per interfacciarsi ad un FTP da java...l'idea di base è quella di creare una connessione e due stream per dialogare con il server...

Codice:
try {
	URL url = new URL("ftp://user:[email protected]");
	URLConnection urlc = url.openConnection();
	InputStream is = urlc.getInputStream(); 
	OutputStream os = urlc.getOutputStream();

	} catch (Exception e) {
		
		e.printStackTrace();
	}
...ecco un elenco dei piu' comuni comandi utilizzabili...

Codice:
    * ABOR - abort a file transfer
    * CWD - change working directory
    * DELE - delete a remote file
    * LIST - list remote files
    * MDTM - return the modification time of a file
    * MKD - make a remote directory
    * NLST - name list of remote directory
    * PASS - send password
    * PASV - enter passive mode
    * PORT - open a data port
    * PWD - print working directory
    * QUIT - terminate the connection
    * RETR - retrieve a remote file
    * RMD - remove a remote directory
    * RNFR - rename from
    * RNTO - rename to
    * SITE - site-specific commands
    * SIZE - return the size of a file
    * STOR - store a file on the remote host
    * TYPE - set transfer type
    * USER - send username
...con questi puoi interrogare il server...inviare e ricevere file ed informazioni su questi...

...domani se riesco ti posto qualcosa di piu' concreto...

...ciao...
ally è offline   Rispondi citando il messaggio o parte di esso
Old 19-07-2005, 22:34   #5
fbcyborg
Senior Member
 
L'Avatar di fbcyborg
 
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
Ciao! grazie, vedo che ti sei impegnato a rispondermi....
volevo dirti innanzitutto che non è necessario che mi spieghi la parte di networking.. E' già tutto realizzato e pienamente funzionante. Ho implementato sia un client che un server ftp.
L'unico fatto è che quando arriva una richiesta di tipo LIST al server, quest'ultimo dovrebbe spedire un listato dei files al client. OK, fin quì ci siamo.
Il mio problema è: dato che il metodo list() della classe File nel package java.io restituisce la semplice lista dei files contenuti nella directory specificata, a me serve un listato un po' più sofisticato. Conosco le RFC 959, e i vari comandi del protocollo. Sto realizzando il lato server ed ho bisogno di mandare al client che mi fa un LIST una lista di files che è l'equivalente di un ls -al unix, che faccia vedere TUTTI gli attributi di un file o di una directory.
Suppongo, anzi sono certo che questo problema prescinda dal protocollo FTP. Quindi mi basterebbe un semplice metodo main che lanciato da una directory (la sua classe chiaramente) mi restituisca un ls -al anche se lo lancio da windows.
Chiedo questo poichè provando dei comuni server ftp scaricabili in prova da internet, come x esempio UServ-FTP server, alla ricezione del comando LIST (dir se parliamo in termini di client ftp di windows) spedice un ls -al della dir attuale. Posso immaginare che tale software sia scritto in c o in c++ o in chissà quale altro linguaggio, ma perchè in java non posso simulare un ls -al unix???? Spero esista un sistema.

Spero di essere stato un po' più chiaro ora...
Grazie infinite...

PS: se devo crearmelo da solo... mi armo di pazienza....
__________________
^ThE CyBoRg^
fbcyborg è offline   Rispondi citando il messaggio o parte di esso
Old 20-07-2005, 08:27   #6
ally
Bannato
 
L'Avatar di ally
 
Iscritto dal: Jan 2003
Città:
Messaggi: 4423
...ok quindi stai cercando un modo...anche da locale...di eseguire comandi da shell e ricavarne l'output?...se è così interesserebbe anche a me...

...la soluzione dovrebbe essere circa così...

Codice:
    

{
    Runtime r = Runtime.getRuntime();
    String cmd = "comando";
    Process prc = r.exec(cmd);
    BufferedReader is = new BufferedReader(new InputStreamReader(prc.getInputStream()));
    String line;
    while ((line = is.readLine()) != null)
      System.out.println(line);
  }
...ciao...
ally è offline   Rispondi citando il messaggio o parte di esso
Old 20-07-2005, 08:55   #7
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da ally
...ok quindi stai cercando un modo...anche da locale...di eseguire comandi da shell e ricavarne l'output?...se è così interesserebbe anche a me...
Credo che stia cercando un modo per recuperare gli attributi di ogni file presente in una directory...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 20-07-2005, 09:19   #8
fbcyborg
Senior Member
 
L'Avatar di fbcyborg
 
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
MI serve un ls -al UNIX. Anche da Winsozz..
__________________
^ThE CyBoRg^
fbcyborg è offline   Rispondi citando il messaggio o parte di esso
Old 20-07-2005, 09:32   #9
ally
Bannato
 
L'Avatar di ally
 
Iscritto dal: Jan 2003
Città:
Messaggi: 4423
Quote:
Originariamente inviato da fbcyborg
MI serve un ls -al UNIX. Anche da Winsozz..

...l'ultimo stralcio di codice da me postato puo' eseguire tale funzione...ma da locale...

...ciao...
ally è offline   Rispondi citando il messaggio o parte di esso
Old 20-07-2005, 11:11   #10
fbcyborg
Senior Member
 
L'Avatar di fbcyborg
 
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
OK! grazie... ma devo cambiare qualcosa?
__________________
^ThE CyBoRg^
fbcyborg è offline   Rispondi citando il messaggio o parte di esso
Old 20-07-2005, 11:25   #11
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
In questo modo lui si deve prendere l'output del comando (un attrib avrà un output diverso da ls -la) e rileaborarselo... Ricordatevi che in Windows gli attributi non sono come quelli di Linux, ma devono essere rielaborati... IMHO è sempre una brutta abitudine prendere l'output di un comando...in qualsiasi linguaggio o sistema operativo... Poi soprattutto in Java che dovrebbe essere portabile...

Non basta usare un funzione che ottiene gli attributi di un file e dopo applicarla a tutti i file ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 20-07-2005, 19:49   #12
fbcyborg
Senior Member
 
L'Avatar di fbcyborg
 
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
ally: ho provato a fare come dici.. non ci riesco però:
ecco la classe:

Codice:
import java.io.*;

public class List {
	public static void main(String[] args) throws IOException{
		Runtime r = Runtime.getRuntime();
	    String cmd = "comando";
	    Process prc = r.exec(cmd);
	    BufferedReader is = new BufferedReader(new InputStreamReader(prc.getInputStream()));
	    String line;
	    while ((line = is.readLine()) != null)
        System.out.println(line);
	}
}
ed ecco la runtime exception:
Exception in thread "main" java.io.IOException: CreateProcess: comando error=2
at java.lang.Win32Process.create(Native Method)
at java.lang.Win32Process.<init>(Win32Process.java:66)
at java.lang.Runtime.execInternal(Native Method)
at java.lang.Runtime.exec(Runtime.java:566)
at java.lang.Runtime.exec(Runtime.java:428)
at java.lang.Runtime.exec(Runtime.java:364)
at java.lang.Runtime.exec(Runtime.java:326)
at List.main(List.java:7)
__________________
^ThE CyBoRg^
fbcyborg è offline   Rispondi citando il messaggio o parte di esso
Old 20-07-2005, 23:38   #13
ally
Bannato
 
L'Avatar di ally
 
Iscritto dal: Jan 2003
Città:
Messaggi: 4423
...mh...mi dispiace...domani ricontrollo...

...ciao...
ally è offline   Rispondi citando il messaggio o parte di esso
Old 20-07-2005, 23:42   #14
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Grazie per avermi ignorato
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 21-07-2005, 06:54   #15
ally
Bannato
 
L'Avatar di ally
 
Iscritto dal: Jan 2003
Città:
Messaggi: 4423
Quote:
Originariamente inviato da cionci
Grazie per avermi ignorato

...beh è in parte cio' che avevo consigliato all'inizio...usando comandi specifici ftp per ricostruire le proprietà del file...il problema è capire se questa cosa deve essere fatta da remoto o da locale...

...ciao...
ally è offline   Rispondi citando il messaggio o parte di esso
Old 21-07-2005, 07:55   #16
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da ally
...beh è in parte cio' che avevo consigliato all'inizio...usando comandi specifici ftp per ricostruire le proprietà del file...il problema è capire se questa cosa deve essere fatta da remoto o da locale...
Da locale... Lui sta scrivendo il server e non deve usare i comandi FTP...basta applicare questa classe: http://java.sun.com/j2se/1.5.0/docs/...ermission.html

Questi sono i permessi su quel file per la sua applicazione...e di fatto gli altri basta simularli... Anche perchè non credo che lui voglia creare "Gruppi" sul suo FTP server... Se li vuoi usare allora devi passare a creare un virtual file system per cui nella configurazione del FTP server verrano specificati i tipi di accesso a tutti, gruppo e utente per quelal directory...un po' come fa WarFTP Server...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 21-07-2005, 07:58   #17
fbcyborg
Senior Member
 
L'Avatar di fbcyborg
 
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
cionci: grazie per questo link che mi hai mandato... vedo subito di che si tratta!!!
Quindi in pratica per questa classe io posso ottenere quei famosi attributi
-xwr-ww-w ecc... x i files
dwr ecc... per le dir?
__________________
^ThE CyBoRg^

Ultima modifica di fbcyborg : 21-07-2005 alle 08:00.
fbcyborg è offline   Rispondi citando il messaggio o parte di esso
Old 21-07-2005, 08:03   #18
ally
Bannato
 
L'Avatar di ally
 
Iscritto dal: Jan 2003
Città:
Messaggi: 4423
...ottimo...non conoscevo questa classe...

...ciao...
ally è offline   Rispondi citando il messaggio o parte di esso
Old 21-07-2005, 08:11   #19
ally
Bannato
 
L'Avatar di ally
 
Iscritto dal: Jan 2003
Città:
Messaggi: 4423
Quote:
Originariamente inviato da ally
...mh...mi dispiace...domani ricontrollo...

...ciao...

...il problema dovrebbe essere legato al comando da lanciare...

...String cmd = "cmd /c dir";

...così lancia il comando dir dal path del programma...

...ciao...
ally è offline   Rispondi citando il messaggio o parte di esso
Old 21-07-2005, 08:13   #20
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Ottieni solo gli attributi per il tuo programma...gli altri devi simularli... Ad esempio mettendoli sempre a 1...
Per la dir...io non mi intendo per niente di Java comunque se credo che non impossibile da trovare...
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Airbus realizzerà altri 229 satel...
Arianespace lancerà altri satelli...
Eutelsat ha annunciato di aver affidato ...
PLD Space ha annunciato il nuovo razzo s...
CMF Clip Pro, tanta autonomia e design u...
Tre leggende del rally sbarcano in Asset...
iPhone 18 Pro Max, il chip A20 Pro mostr...
Samsung porterà il Privacy Displa...
WINDTRE BUSINESS trasforma la rete mobil...
Anthropic ammette un quarto caso di acce...
Mazda CX-6e, il primo test drive: quando...
La serie HONOR Magic 9 arriva a fine set...
Anker MagGo Power Bank 2 Pro arriva in I...
iRobot rilancia con Roomba Duo, il proto...
#linux su IRC è tornato dopo anni di sil...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 00:06.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v