isHidden() von java.io.File liefert immer true in Windows

Morkeleb

Mitglied
Hi.

Ich habe einen FilenameFilter geschrieben der alle versteckten dateien ausfiltert.
Wenn ich dann ein verzeichnis-listing erfrage (directory.list(hiddenFilenameFilter))
werden keine ergebnisse zurückgeliefert, obwohl in dem verzeichnis sichtbare
files existieren.
directory.list() liefert schön ergebnisse.

Wenn ich das ganze in Mac OSX laufen lasse kriege ich auch mit dem filter ergebnisse.

Kann mir jemand erklären was das problem ist?

Morke
 
Das ist der code der klasse:

Java:
public class HiddenFilenameFilter implements FilenameFilter {
	@Override
	public boolean accept(File file, String name) {
		return !file.isHidden();
	}
}

Die schaute eigentlich ganz gut aus, bis ich rausgefunden hab daß der erste parameter
eher File dir heißen sollte und ds verzeichnis ist in dem das file ist.
Seltsamerweise liefert das bei C:\ immer hidden.

Wenn man "return !file.isHidden();" durch "return !new File(dir, name).isHidden();" ersetzt (neben File file durch File dir), dann klappt es.

Morke
 
Zuletzt bearbeitet von einem Moderator:

Zurück
Oben