Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Operazioni su cartella

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    6

    Operazioni su cartella

    salve ragazzi,
    lavoro con java da poco...molto poco e mi si è presentato il problema di calcolare il peso di una carella.
    Sapreste indicarmi come muovermi o magari farmi vedere il codice cosi da potermelo studiare ?
    Ciao
    ROB

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Calcolare il "peso" di una cartella equivale a sommare tutti i "pesi" dei file in essa contenuti e di quelli nelle sue sottodirectory.

    Quindi, devi ottenere l'elenco dei file della directory (metodo listFiles() della classe File), scorrerlo e, se l'i-esimo elemento rappresenta un file (metodo isFile()) sommi la sua dimensione ad un contatore di dimensione (metodo length()). Se è una directory (metodo isDirectory()), devi ripetere ricorsivamente questa cosa.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    6

    Grazie Lele

    Grazie mille Lele.

    In mancanza di codice da studiare provero' a creare ahahahahh
    Ciao
    ROB

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Il minimo (ma proprio il minimo) per elencare tutti i file in una directory e sue sotto directory è in questo esempio:

    codice:
    import java.io.*;
    
    public class ElencaFile {
        public static void main(String[] args) {
            File dir = new File("C:\\");    // directory di base
            elencaFile(dir);
        }
    
        private static void elencaFile(File dir) {
            File[] files = dir.listFiles();
    
            for (int i = 0; i < files.length; i++) {
                File f = files[i];
    
                if (f.isDirectory()) {
                    elencaFile(f);    // ricorsivo!!!
                } else {
                    System.out.println(f);
                }
            }
        }
    }
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    6

    OTTIMO Andbin

    Questo è perfetto !!!
    Ora grazie ai consigli di lele devo riuscire a utilizzare alcuni metodi !

    GRAZZZZZZZIE
    Ciao
    ROB

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    6

    mah...

    Scusa Andbin ma è possibile inserire il metodo isfile nel codice cosi da riuscire a sommare il peso di tutti i files ?

    Se si il tutto deve essere inserito dentro elencaFile nel ciclo for ???
    Ciao
    ROB

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: mah...

    Originariamente inviato da RobJJ
    Scusa Andbin ma è possibile inserire il metodo isfile nel codice cosi da riuscire a sommare il peso di tutti i files ?
    Se vuoi avere la somma delle dimensioni di tutti i file, innanzitutto dovresti fare in modo che il metodo restituisca un long. Nel ciclo for sommi tutte le dimensioni dei file più le dimensioni ottenute invocando ricorsivamente il metodo! E restituisci il valore.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    6

    mmm

    per ora ho un po' di difficoltà...
    ho ripreso java da pochissimo e sto' cercando di capire come muovermi al meglio.
    Ti ringrazio per l'aiuto,adesso devo riuscire a mettere insieme 2 righe di codice con quello che gia' mi hai fornito.

    Speriamo bene !!!!!!
    Ciao
    ROB

  9. #9
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: mmm

    Originariamente inviato da RobJJ
    per ora ho un po' di difficoltà...
    Non è difficile!
    a) Dichiari che il metodo ritorna un long
    b) Metti una variabile locale di tipo long inizialmente a 0.
    c) Nel for sommi a questa variabile la dimensione di ogni file (vedi javadoc di File) più la dimensione ottenuta ricorsivamente
    d) Alla fine fai il return del valore.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    6

    proviamo !!!

    non finiro' di ringraziarti !!!!
    Ciao
    ROB

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.