PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Java listFiles() geht nicht???


Shink
2005-06-28, 09:15:21
Hallo, hab ein sehr seltsames Problem mit folgendem Teil meines Java-Codes:

class DocMat {
File[] vectors;

DocMat(String dir) throws Exception {
File index = new File(dir);
vectors = index.listFiles();
}

public static void main(String[] args) {
try { new DocMat(args[0])
} catch (Exception ex) {ex.printStackTrace();}
}
}

Man sollte erwarten, dass nun vectors[] alle Dateien im Verzeichnis args[0] enthält. Aber nein, es enthält ungefähr 50-80% der Dateien.
Bei einem fixen Dateiensatz werden immer die selben (und immer gleich viele) ausgewählt.
Die Dateien sind einheitlich benannt (MED.1 bis MED.1033) und haben die selben Berechtigungen, da sie automatisch erzeugt werden.

Ich verwende Java 1.4.2_04-b05, Fedora Core 4. Nun hab ich probiert, das Zeug mit GCC-GCJ zu compilieren und hab das selbe Problem.

Meine Fragen nun:
- Hatte schon jemand ein ähnliches Problem mit File.listFiles()?
- Was wäre meine Alternative zu File.listFiles()???

Gast
2005-06-28, 09:33:56
Hallo!

Hast du schon einmal versucht, einen simplem FileFilter zu verwenden und dir dessen Angaben anzuschauen?

z.B. so:


public class TestFileFilter
{
public TestFileFilter()
{
}

public static void main( String[] args )
{
File dir = new File( "./foo" );
Vector files = dir.listFiles( new SimpleFileFilter() );
// ...
}

}
class SimpleFileFilter extends javax.swing.filechooser.FileFilter
{
public boolean accept( File f )
{
System.out.println( f.toString() );
return true;
}
}

Ich kann mir kaum vorstellen, dass Dateien willkürlich nicht geliefert werden. Wenn es immer dieselben Dateien sind, worin unterscheiden sich diese von anderen Dateien, die angezeigt werden?

bye, mith

Shink
2005-06-28, 10:22:04
Tja, stimmt. War meine Schuld (Fehler beim Erstellen mancher Dateien...)

mithrandir
2005-06-28, 10:28:45
Hallo nochmal!

Der Gast dort oben war ich. Muss natürlich java.io.FileFilter heissen in dem Sample-Code...

Jedenfalls würde mich interessieren, was du für einen "Fehler" gemacht hast. Woran ist der Standard-Filter gescheitert?

bye, mith

Shink
2005-06-28, 10:44:32
Der Filter ist an keinem File gescheitert. Die Dateien werden von einem anderen Programmteil automatisch erzeugt und manche Dateien wurden eben nicht erzeugt. Ich war so klug, vorher stundenlang einen Fehler zu suchen, bevor ich einfach zählte, wie viele Dateien es sind. Also vergiss es.