Newsgroup: it.comp.java
Titolo: Creazione directory: win e linux

Salve a tutti!
Mi serviva un metodo che controllasse se una directory fosse presente sul
disco, e in caso contrario la creasse. Eccolo qui:
    public File getDir(String dir) {
        String path = parseDir(dir);
        String fs = System.getProperty("file.separator");
        StringTokenizer st = new StringTokenizer(dir, fs);
        File f = null;
        StringBuffer buf = new StringBuffer();
        while (st.hasMoreTokens()) {
            buf.append(st.nextToken());
            buf.append(FS);
            f = new File(buf.toString());
            if (!f.exists()) f.mkdir();
        }
        return f;
    }
su windows funziona egregiamente: se passo un percorso assoluto tipo
C:\crea\queste\directory\ le crea, altrimenti crea l'albero a partire
dalla directory in cui si trova il file dei classe che contiene il metodo.
Su linux però mi crea sempre alberi agganciati alla directory corrente: se
per esempio mi trovo in una directory /usr/geps/bin, dando al metodo come
parametro la stringa /tmp/directory/da/creare/, la nuova directory sarà la
seguente:/usr/geps/bin/tmp/directory/da/crare/ e non, come vorrei
/tmp/directory/da/creare/
Perchè?
Grazie per l'attenzione, ciao!
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

         String path = parseDir(dir);
PS: il metodo parseDir non fa altro che aggiungere un carattere
"file.separator" alla fine della stringa, quindi se invoco con C:\TMP avrò
C:\TMP\ e se invoco con /tmp avrò /tmp/
Ciao!


Ciao, GePs!
Il giorno 10/05/2004 alle ore 14:55 hai scritto:
 G> su windows funziona egregiamente: se passo un percorso assoluto tipo
 G> C:\crea\queste\directory\ le crea, altrimenti crea l'albero a partire
[...]
 G> al metodo come parametro la stringa /tmp/directory/da/creare/, la nuova
Con StringTokenizer, nel primo caso, il primo elemento e' C: e quindi
aggiungendo il backslash tutto funziona, nel secondo caso invece il primo
elemento diventa tmp che si traduce in un percorso locale. Dovresti ottenere
lo stesso risultato se nella versione windows ometti il drive.
Bye
-- 
There is no ignorance; There is knowledge
http://www.maccasoft.com

 ottenere lo stesso risultato se nella versione windows ometti il drive.
E' vero, non me ne ero reso conto! Credo che la cosa migliore a questo
punto sia controllare la presenza dei due punti nella stringa... o qualche
altra soluzione più smart che mi verrà in mente (se qualcuno ha dei
suggerimenti non si faccia scrupolo :))!
Grazie!


 disco, e in caso contrario la creasse.
Perché non va bene il metodo mkdirs di File ?
- Dario



Ecco, il grande Dario vi ha appena dato un esempio di cosa intendo quando
rompo in continuazione le balle a tutti dicendo:
LEGGETE *BENE* LA DOCUMENTAZIONE!!!!!
ci vuole tanto? cinque minuti persi spulciando una classe metodo per metodo
a volte possono far risparmiare ORE se non GIORNI di lavoro!
-- 
Fermiamo Scientology prima che sia troppo tardi!!!
http://xenu.com-it.net
 - 
http://xenu.freewinds.cx/
(per rispondere personalmente leva IlDitoDalCulo)

 LEGGETE *BENE* LA DOCUMENTAZIONE!!!!!
Hai ragione, scusate... non l'avevo proprio visto mkdirs. :P
