public void etsiTiedostot() throws IOException { String hakemisto= (String) mistaHakemisto.getSelectedItem(); File f = new File(hakemisto+"\\"); if ( f.exists() ) { File[] files = f.listFiles(); for ( File file : files ) { long kbSize = file.length() / 1024; haetutTiedostot.append(file.getName() + "\t"+"\t"+ file.getCanonicalPath() + "\t"+"\t"+kbSize+"kt\n"); } }
Jotakin häikkää löytyy koodista String hakemisto= (String) mistaHakemisto.getSelectedItem() koska valittaa siitä pitkän listan virheitä. Jos laittaa File f on "C:\" niin se etsii normaalisti tiedostot, mutta tuolla koodilla se valittaa virheistä.
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.io.File cannot be cast to java.lang.String at paaikkuna.etsiTiedostot(paaikkuna.java:104) at paaikkuna.actionPerformed(paaikkuna.java:131) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) ... at java.awt.EventDispatchThread.run(Unknown Source)
Mikä mahtaa olla ongelmana ja miten sen voisi ratkaista.
(Mod. poisti turhia rivejä virheilmoituksesta.)
No eikös se tuossa heti sanota selvästi:
java.io.File cannot be cast to java.lang.String
Oletettavasti virheellinen rivi on tässä:
String hakemisto= (String) mistaHakemisto.getSelectedItem();
Jooh nyt tajusin, kiitti sain sen nyt korjattua. Tein näin ja ongelma korjaantui:
Object obj = mistaHakemisto.getSelectedItem();
String hakemisto = obj.toString();
Aihe on jo aika vanha, joten et voi enää vastata siihen.