[java]chyba s velikosti pole

C++, C#, Visual Basic, Delphi, Perl a ostatní

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod queeg500 28. 12. 2006 14:16

zjistuji touto metodou pocet souboru v zadanem adresari a nevim, proc mi to nekdy vyhodi chybu: java.lang.NullPointerException
tak jestli nekdo vite, tak mi poradte, diky.
Kód: Vybrat vše
public static int pocetSouboru(String cesta){
        File soubory = new File(cesta);
        File []polozka;
        polozka= soubory.listFiles();
        int pocet=0;
        System.out.println(polozka.length);
        for (int i=0;i<polozka.length;i++){

            if (polozka[i].isFile()==true){
                pocet++;
                }

            else pocet+=pocetSouboru(polozka[i].getPath());
        }return pocet;
    }
Naposledy upravil queeg500 dne 28. 12. 2006 16:35, celkově upraveno 1
queeg500
Kolemjdoucí

Odeslat příspěvekod Vebloud 28. 12. 2006 16:16

Nauč se používat CODE tag, kdo to má číst. Nemůže se stát, že máš špatně cestu a žádný soubory tam nejsou, takhle náhodou? Jen tajk mimochodem, jestli se nepletu, tak listFiles ti vrátí jenom soubory, takže si stačí vzít lenght a máš hotovo a nemusíš to procházet.
Žít a nechat žít, ty máš svůj názor, já mám svůj názor, já ti nebudu nutit svůj, nemusím souhlasit s tvým, ale udělám vše, abys ho mohl svobodně vyjádřit.
Vebloud
Ex-moderátor
Uživatelský avatar

Odeslat příspěvekod Nargon 28. 12. 2006 16:38

Pokud na zadane ceste zadne soubory nejsou, tak listFiles() vrati jen null.
A null nema .length
Divim se, ze ti to nezpusobuje problem uz pri tom vypisu, kterej je nad tim forem.

Dopln si tam podminku pred ten for:
if (polozka==null) return 0;
Desktop: Ryzen 7 1800X (3.95GHz, 1.35V), Asus Crosshair VI Hero, 16GB DDR4 Ram (3200MHz), 128GB SSD + 3TB HDD, Nvidia GTX 1080
Notebook: Asus UL50VT 15.6" (SU7300@1.7GHz, 4GB ram, 500GB HDD, Intel GMA 4500MHD + nVidia G210M, dlouha vydrz cca 7+ hod)
Nargon
Moderátor

Odeslat příspěvekod queeg500 28. 12. 2006 17:04

Díky, už to jede správně, jsem hledal chybu v tom for, tak to bych ji nikdy nenasel, moc diky.
queeg500
Kolemjdoucí


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků