Page 1 of 1

[Java]Απομακρυσμένη Πρόσβαση σε αρχεία

Posted: Thu Oct 12, 2006 2:15 am
by Babedacus
Ε;Καλά το είπα;Βασικά η απορία είναι διπλή.
α)Πως μπορώ να δω τα περιεχόμενα του καταλόγου http://dias.aueb.gr/ ;
β)Πως μπορώ να ανοίξω το αρχείο http://dias.aueb.gr/dias.jpg ;

To α δηλαδή είναι σαν το list() της class java.io.File.
Και το β σαν το new File("http://dias.aueb.gr/dias.jpg"),κτλ.

Posted: Thu Oct 12, 2006 2:23 am
by ciao
Τι ακριβώς θέλεις να κάνεις??? :???:

Re: [Java]Απομακρυσμένη Πρόσβαση σε αρχεία

Posted: Thu Oct 12, 2006 2:37 am
by Argi
Babedacus wrote:Ε;Καλά το είπα;Βασικά η απορία είναι διπλή.
α)Πως μπορώ να δω τα περιεχόμενα του καταλόγου http://dias.aueb.gr/ ;
β)Πως μπορώ να ανοίξω το αρχείο http://dias.aueb.gr/dias.jpg ;

To α δηλαδή είναι σαν το list() της class java.io.File.
Και το β σαν το new File("http://dias.aueb.gr/dias.jpg"),κτλ.
a) Άνοιξε μια tcp socket connection στην διεύθυνση dias.aueb.gr και στείλε ένα σωστό GET request για τη σελίδα που θες να δείς. Θα σου επιστραφεί μια html σελίδα και αν έχει ενεργοποιημένο το directory listing η σελίδα που θες, θα δείς τα περιεχόμενα. Τώρα αν θές όντως να δείς του http://dias.aueb.gr/, τότε δε νομίζω να μπορέσεις γιατί ο server θα σου
στείλει την index που έχει τοποθετηθεί εκεί.
b) Τι εννοείς "ανοίξω"; Αν θες να βάλεις την εικόνα http://dias.aueb.gr/dias.jpg σε ένα label μέσα σε ένα frame, τότε μπορείς άνετα να το κάνεις, το jlabel μπορεί να πάρει ως εικόνα κάτι από url, αφού το imageIcon δέχεται url ως όρισμα στον κατασκευαστή. Άρα μπορείς να πάρεις την εικόνα από το http://dias.aueb.gr/dias.jpg και να την κάνεις ό,τι θές.

Posted: Thu Oct 12, 2006 2:45 am
by Babedacus
ciao wrote:Τι ακριβώς θέλεις να κάνεις??? :???:
Έχω ένα πρόγραμμα σε Java,ωραία;Μέχρι χτες αυτό που έκανε είναι να παίρνει σαν είσοδο ένα κατάλογο στο τοπικό σύστημα αρχείων και να γράφει στην προκαθορισμένη έξοδο όλα τα περιεχόμενα του.Καλά μέχρι εδώ;Αυτό που θέλω να κάνει τώρα είναι να παίρνει σαν είσοδο ένα URL και να μου δείχνει τα περιεχόμενα του καταλόγου του απομακρυσμένου συστήματος (π.χ. του καταλόγου / στο dias.aueb.gr).
Επίσης αυτό το πρόγραμμα ανοίγει μπορεί να δείξει και μια εικόνα απ'το τοπικο σύστημα αρχείων.Αυτό που θέλω να κάνει τώρα είναι να ανοίγει μια εικόνα από άλλο υπολιστή (π.χ την http://dias.aueb.gr/dias.jpg).

Re: [Java]Απομακρυσμένη Πρόσβαση σε αρχεία

Posted: Thu Oct 12, 2006 2:51 am
by Babedacus
Argi wrote:a) Άνοιξε μια tcp socket connection στην διεύθυνση dias.aueb.gr και στείλε ένα σωστό GET request για τη σελίδα που θες να δείς. Θα σου επιστραφεί μια html σελίδα και αν έχει ενεργοποιημένο το directory listing η σελίδα που θες, θα δείς τα περιεχόμενα. Τώρα αν θές όντως να δείς του http://dias.aueb.gr/, τότε δε νομίζω να μπορέσεις γιατί ο server θα σου
στείλει την index που έχει τοποθετηθεί εκεί.
Δεν υπάρχουν έτοιμες βιβλιοθήκες που να το κάνουν αυτόματα αυτό το πράμα,και να μου δίνουν String[];
Όσον αφορά το β,το είχα ήδη λύσει,αλλά δεν το είχα πάρει χαμπάρι.:-D

Posted: Thu Oct 12, 2006 3:19 am
by ciao
Προσωπικά δεν γνωρίζω γιατί δεν το έχω ψάξει...google ή κάτι αντίστοιχο κοίταξες??
Διαφορετικά argi... ;)

Posted: Thu Oct 12, 2006 4:53 am
by Argi

Code: Select all

   try {
        // Create a URL for the desired page
        URL url = new URL("http://dias.aueb.gr/~p302xxxx/");
    
        // Read all the text returned by the server
        BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
        String str;
        while ((str = in.readLine()) != null) {
            // str is one line of text; readLine() strips the newline character(s)
        }
        in.close();
    } catch (MalformedURLException e) {
    } catch (IOException e) {
    }
Αυτό θα κάνει τη δουλειά πιο εύκολα.
Μόνο που αυτό που θα επιστραφεί θα είναι μια html σελίδα η οποία θα έχει τα περιεχόμενα του καταλόγου σε html μορφή αν είναι ενεργοποιημένο το directory listing όπως είπα πιο πριν. Μετά πρέπει να κάνεις parse τα αποτελέσματα για να βρείς τα ονόματα των αρχείων.
Γενικά δεν υπάρχει κάτι αντίστοιχο της list() για urls σε καμμία γλώσσα απ'όσο ξέρω.

Posted: Thu Oct 12, 2006 5:21 am
by Babedacus
Ευχαριστώ.Θα το κοιτάξω,αλλα μάλλον το βράδυ.