Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre
L'abbonamento Ultimate di GeForce NOW ora comprende la nuova architettura Blackwell RTX con GPU RTX 5080 che garantisce prestazioni tre volte superiori alla precedente generazione. Non si tratta solo di velocità, ma di un'esperienza di gioco migliorata con nuove tecnologie di streaming e un catalogo giochi raddoppiato grazie alla funzione Install-to-Play
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco
Deebot X11 Omnicyclone implementa tutte le ultime tecnologie Ecovacs per l'aspirazione dei pavimenti di casa e il loro lavaggio, con una novità: nella base di ricarica non c'è più il sacchetto di raccolta dello sporco, sostituito da un aspirapolvere ciclonico che accumula tutto in un contenitore rigido
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio
Grazie ad un mocio rotante che viene costantemente bagnato e pulito, Narwal Flow assicura un completo e capillare lavaggio dei pavimenti di casa. La logica di intellignza artificiale integrata guida nella pulizia tra i diversi locali, sfruttando un motore di aspirazione molto potente e un sistema basculante per la spazzola molto efficace sui tappeti di casa
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: 4421
...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: 4421
...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:password@ftp.dominio.com");
	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: 4421
...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: 4421
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: 4421
...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: 4421
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: 4421
...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: 4421
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


Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre Prova GeForce NOW upgrade Blackwell: il cloud ga...
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco Ecovacs Deebot X11 Omnicyclone: niente più...
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio Narwal Flow: con il mocio orizzontale lava i pav...
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi Panasonic 55Z95BEG cala gli assi: pannello Tande...
HONOR Magic V5: il pieghevole ultra sottile e completo! La recensione HONOR Magic V5: il pieghevole ultra sottile e co...
Larry Ellison guadagna 101 miliardi in u...
Johnson Controls amplia la gamma di solu...
NASA Perseverance: il rover potrebbe ave...
Quelli di Immuni si 'pappano' Vimeo: Ben...
Changan lancia la Deepal S05 in Europa, ...
Substrati in vetro, Intel smentisce le v...
ECOVACS DEEBOT T50 PRO OMNI Gen2 fa piaz...
Windelo 62: catamarano a vela che unisce...
Francia, in arrivo un incentivo di 1.000...
Haier, la sorpresa a IFA: la lavatrice C...
GeForce RTX 5000 SUPER in arrivo? Sembra...
Ionity prova una soluzione contro i ladr...
Pirateria, svolta clamorosa: Dazn e Lega...
Maxi richiamo Toyota e Lexus: oltre 900....
Blackwell Ultra: fino al 45% di prestazi...
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: 01:46.


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