Files.isDirectory

blackwater

Mitglied
hey leute.
mein problem ist, dass mir die funktion .isDirectory() in jedem fall false liefert, ganz gleich ob es sich um eine datei oder um ein verzeichnis handelt.
habt ihr irgendwelche ideen, wieso das so ist/was ich dagegen tun kann?

meine saftware: win7 enterprise 32bit mit jdk7.5


danke und mfg

edit: bei der funktion isFile() ist es genau das gleiche...
 
Zuletzt bearbeitet:

blackwater

Mitglied
Java:
public class Lister {

  private static List<File> files = new ArrayList<>();

  /**
   * @param args the command line arguments
   */
  public static void main(String[] args) {
    File f = new File("D:\\Data\\lenzma\\Eigene Dateien\\kw31\\Schulungen");
    File f2 = new File("C:\\Users\\lenzma\\Desktop\\test");
    fillList(f);
    System.out.println(files.size());
    for(File h : files) {
      //System.out.println(h.getName());
    }
  }

  private static void fillList(File directory) {
    String[] helplist = directory.list();
    File[] list = new File[helplist.length];
    for (int i = 0; i < helplist.length; i++) {
      list[i] = new File(helplist[i]);
    }
    for (File h : list) {
      if (h.isDirectory()) {
        fillList(h);
      } else {
        files.add(h);
      }
    }
  }
}

neue erkenntnise: in f2 funktioniert der ganze käse...

und als erklärung: ich will eine datei haben, in der eine liste mit allen files steht, nicht aber den verzeichnissen
 

turtle

Top Contributor
Schau Dir bitte die Methode
Java:
File.list(FilenameFilter filter)
und dabei natürlich die Klasse FilenameFilter ;-)
 
N

nillehammer

Gast
und als erklärung: ich will eine datei haben, in der eine liste mit allen files steht, nicht aber den verzeichnissen
Da eignet sich Files.listFile mit einem entsprechenden FileFilter besser als die anderen Methoden, ungefähr so:
Java:
  public static void main(String[] args) throws Exception {

    File currentDir = new File("./");
    
    FileFilter justFilesNoDirs = new FileFilter() {
      
      @Override
      public boolean accept(File file) {
      
        return file.isFile();
      }
    };
    
    File[] subFiles = currentDir.listFiles(justFilesNoDirs);

    System.out.println(Arrays.toString(subFiles));
  }
 
S

SlaterB

Gast
Leute, wenn in normaler Benutzung isFile(), isDirectory() nicht geht, dann auch kaum mit einem FileFilter,
der ist nicht magisch sondern ruft letztlich auch diese Methoden auf,

"D:\\Data\\lenzma\\Eigene Dateien\\kw31\\Schulungen"
mag schuld sein, kein Java-Programm muss was mit 'Eigene Dateien' zu tun haben,
ist es vorerst zu viel verlangt, die Daten in eigenene Verzeichnisse ohne evtl. Windows-Nutzer-Rechte-Zugriff und ganz besonders ohne Leerzeichen abzulegen?
 

Flown

Administrator
Mitarbeiter
Java:
    File f = new File("D:\\Data\\lenzma\\Eigene Dateien\\kw31\\Schulungen");
    File f2 = new File("C:\\Users\\lenzma\\Desktop\\test");

da anscheinend f2 existiert probier doch auch mal als Testausgabe:

Java:
if(f.exists()) {
    System.out.println("Existiert");
}
else {
    System.out.println("Fehler im Pfad");
}
 
G

gasssssst

Gast
isDirectory liefert false, weil die zu überprüfende Datei nicht existiert.
Die Datei existiert nicht, weil RTFM zu Files#list(), oder lass dir den Pfad zu deiner zu überprüfenden Datei ausgeben.
 

blackwater

Mitglied
also erst mal danke für die vielen antworten! bin erst heute wieder im büro und drum meld ich mich erst jetzt ^^

ich hab eure tipps ausprobiert, leider half keiner ???:L
was ich noch probiert hab ist, dass ich den gesammten ordner auf den desktop gezogen hab, weil ich da mit den rechten sicher keine probs haben sollte.. half auch nix...

ich hab jetzt eine lösung mit der annahme, dass in jedem file ein punkt vorkommt und in einem verzeichnis nicht, geschrieben. zwar etwas unsauber aber es funktioniert :D

für interessierte:
Java:
public static void main(String[] args) {
    File f = new File("C:\\Users\\lenzma\\Desktop\\Schulungen");
    fillList(f);
    
    for(File h : files) {
      System.out.println(h.getName());
    }
    System.out.println("\nAnz der Files: " + files.size());
  }

  private static void fillList(File directory) {
    String[] helplist = directory.list();
    File[] list = new File[helplist.length];
    for (int i = 0; i < helplist.length; i++) {
      list[i] = new File(helplist[i]);
    }
    for (File h : list) {
      if(h.getName().contains(".")) {
        files.add(h);
      } else {
        fillList(new File(directory.getAbsolutePath() + "\\" + h.getName()));
      }
    }
  }

danke nochmals und mfg
 
S

SlaterB

Gast
ist
> fillList(new File(directory.getAbsolutePath() + "\\" + h.getName()));
ein Unterschied zu
> fillList(h);
?
(*)

statt deiner helplist gibts auch die Methode listFiles() in File,
ansonsten ginge auch alles in einer statt zwei Schleifen

einen Grund für isDirectory() mag ich aber nicht erkennen,
zumal es ja immer noch in einem Verzeichnis geht, im anderen nicht?

edit:
halt, ist doch der Grund:
public String[] list()
[..]
Otherwise an array of strings is returned, one for each file or directory in the directory. Names denoting the directory itself and the directory's parent directory are not included in the result. Each string is a file name rather than a complete path.
[..]
nur mit den Dateinamen File-Objekte erstellt beziehen sich auf das aktuelle Verzeichnis,
funktioniert höchstens dort, sonst nirgendwo,

war etwa das Projektverzeichnis dein Referenztest?..


zu (*) ganz oben: wenn du schon erkannt hast, dass h kaputt ist, auch für die Rekursion,
wenn du sowieso schon neue File-Objekte erstellst,
dann könntest du doch gleich 'richtige' File-Objekte bauen und da dann natürlich auch isDirectory() usw. prüfen, das ist doch naheliegend
 
Zuletzt bearbeitet von einem Moderator:
G

Gasssssssssssst

Gast
...
"D:\\Data\\lenzma\\Eigene Dateien\\kw31\\Schulungen"
mag schuld sein, kein Java-Programm muss was mit 'Eigene Dateien' zu tun haben,
...

Diese Aussage müsstest Du mir mal näher erklären. Warum sollte ein Java-Programm,
Benutzer spezifische Daten nicht im BenutzerOrdner ablegen? Mal abgesehen davon,
dass man in dem Fall keinen absoluten Pfad benutzen sollte.

VG R
 
S

SlaterB

Gast
meine beiden Punkte dazu hatte ich dahinter geschrieben
- Leerzeichen im Pfad, mag bei File nicht stören, aber evtl. wenn eine Umgebungsvariable anzulegen ist, Programmargument, Process-Parameter usw.,
- Windows-Nutzer-Rechte-Zugriff, für den eigenen User dort vielleicht am ehesten, und c:/temp stattdessen gesperrt,
aber lieber ganz außen vor lassen, etwa für andere angemeldete User nicht einsehbar und ähnlich schlimme Scherze,
unter Linux wird das freilich nicht einfacher..,
aber dann darf man zurecht als fortgeschritten genug gelten, um damit umgehen zu können, Windows ist der Dummy-Einstieg
 
P

pappawinni

Gast
Also ich denk mal,
da würd ich doch mal zu einer Datei in dem fraglichen Ordner navigieren und bei einem File, das in dem Ordner liegt mit der rechten Maustaste draufklicken und die Eigenschaften anzeigen lassen.
Da guckst du.. steht der Pfad und der sieht vielleicht anders aus, als du dachtest.

[EDIT]
Im übrigen frag ich mich warum die Backslashes so beliebt sind. Slash..
C:/Data/....
sollte es auch tun.
[/EDIT]
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Probleme beim Erstellen eines runnable-jar files Allgemeine Java-Themen 1
H Mehrere PNG-Files in einer Datei Allgemeine Java-Themen 9
R Delete files before creating new from temp using Java file method Allgemeine Java-Themen 1
X Files.walkFileTree zählt nicht richtig Allgemeine Java-Themen 2
L Mehrere .Jar Files aufrufen Allgemeine Java-Themen 9
P Am Application Server - Selbe files aber trotzdem CNF Allgemeine Java-Themen 2
B Maven Zugriff auf files aus einem kompilierten jar Allgemeine Java-Themen 15
S Eigenschaften (hier Verknüpfung) eines Files lesen Allgemeine Java-Themen 2
M *.class Files ausführen Allgemeine Java-Themen 2
F Java moved Files statt sie zu kopieren Allgemeine Java-Themen 12
B Existenz eines Files max 30 sec prüfen Allgemeine Java-Themen 5
C Input/Output Zip Files über Socket senden und empfangen Allgemeine Java-Themen 6
J Java Software Compare Files und Neue File erstellen Allgemeine Java-Themen 0
X Wav-Files abspielen Allgemeine Java-Themen 2
L Zwei Files miteinander vergleichen und Grafisch darstellen Allgemeine Java-Themen 1
W audio files metadaten Allgemeine Java-Themen 2
M Threads Excel files bearbeiten Allgemeine Java-Themen 4
J Wie kann man .txt Files übers Internet verschicken? Allgemeine Java-Themen 53
V Files mit Umlauten ergeben keine Größe Allgemeine Java-Themen 9
K Zip-Archive mit temporären Files erstellen Allgemeine Java-Themen 16
M Verschlüsselung von Text und Files durch RSA (Encoding Problem) Allgemeine Java-Themen 7
M wav-files kanäle zusammenfügen + pitchen Allgemeine Java-Themen 6
R Löschen von Files nicht möglich Allgemeine Java-Themen 11
P Ordnerstruktur nach .js-Files durchsuchen Allgemeine Java-Themen 2
L Class Files , Methode .delete() Allgemeine Java-Themen 13
P Files - nach der reihe String reinschreiben Allgemeine Java-Themen 2
J Laden von JAR Files geht ohne ADMIN Rechte sehr langsam Allgemeine Java-Themen 6
A Navigation zu Files innerhalb jar Allgemeine Java-Themen 3
P JAVA Bilder/Videos in Form von Files vergleichen Allgemeine Java-Themen 7
B Eclipse Attache source to own jar-files Allgemeine Java-Themen 2
B Permissions of Folders/Files Allgemeine Java-Themen 6
A External Sort - too many open files Allgemeine Java-Themen 6
E Files Kopieren Allgemeine Java-Themen 8
V Mac: Paketinhalt eins Files öffnen, wie? Allgemeine Java-Themen 3
M Übergabe mehrer Files an selbstprogrammieren Parser Allgemeine Java-Themen 4
reibi Separator in java.util.Properties-Files Allgemeine Java-Themen 3
M Webservices: WSDL Files ohne "Service" Element? Allgemeine Java-Themen 4
ruutaiokwu System.out auf files umlenken in log4j.xml Allgemeine Java-Themen 4
X Log files monitoren Allgemeine Java-Themen 7
reibi Files über Classpath laden Allgemeine Java-Themen 22
S Viele zip-files zu einem kombinieren..? Allgemeine Java-Themen 3
B Öffnen und schließen von Pdf-Files Allgemeine Java-Themen 8
T Class-files zur Laufzeit zu Reflection-Zwecken laden Allgemeine Java-Themen 18
R in .jar werden files nicht gefunden!!! Allgemeine Java-Themen 5
N Fehler mit Jar-Files Allgemeine Java-Themen 9
J BufferedImage aus PNG Files haben keinen Type Allgemeine Java-Themen 4
U Properties in Jar Files Allgemeine Java-Themen 3
Developer_X Extract Zip Files with Java Allgemeine Java-Themen 21
N 2 files auf gleichheit vergleichen Allgemeine Java-Themen 5
A Get all Files in Workspace Allgemeine Java-Themen 9
Quaxli Files massenhaft löschen Allgemeine Java-Themen 3
N Versionierung von jar-Files Allgemeine Java-Themen 5
Daniel_L Best Practice zum Löschen von Log-Files? Allgemeine Java-Themen 8
V aus mehreren jar files, ein großes basteln Allgemeine Java-Themen 22
J Too many open files Allgemeine Java-Themen 11
J Eclipse: Einbindung von jar-Files funktioniert nicht Allgemeine Java-Themen 4
O .jar Files - Tools zum generieren Allgemeine Java-Themen 25
A Problem: Mehrere PDF-Files nacheinander Öffnen Allgemeine Java-Themen 12
A jpeg Files mit eigenem Programm öffnen Allgemeine Java-Themen 4
M Embedded Files aus PDF extrahieren Allgemeine Java-Themen 3
J Too many files open Allgemeine Java-Themen 4
M Debuggen von Code in jar-Files? Allgemeine Java-Themen 5
G Sonderzeichen für Files Allgemeine Java-Themen 5
G bestimmte Files suchen Allgemeine Java-Themen 2
reibi Classenpath mit mehreren gleichen jar-Files Allgemeine Java-Themen 7
M Die gleiche Klasse in mehreren JAR files Allgemeine Java-Themen 5
M Probleme mit jar-files Allgemeine Java-Themen 5
G Bearbeiten von Files in einem Thread Allgemeine Java-Themen 4
reibi Klassenpfad für jar-Files Allgemeine Java-Themen 7
J Alte Log Files löschen mit log4j Allgemeine Java-Themen 3
D Files umbenennen mit renameTo() Allgemeine Java-Themen 5
I Pfadangabe zu Files Allgemeine Java-Themen 2
X PowerPoint Files in Java erzeugen Allgemeine Java-Themen 2
sparrow Ant build-files rekursiv aus ant aufrufen Allgemeine Java-Themen 3
K "Too many open files" bei Property List Allgemeine Java-Themen 5
T Mp3 files? Allgemeine Java-Themen 2
I Files einlesen Allgemeine Java-Themen 3
I Diverse Files aus Ordner auslesen Allgemeine Java-Themen 10
mabu Erstellen/Entpacken von Cabinet-Files Allgemeine Java-Themen 12
T Jar-Files und JVM-Cache? Allgemeine Java-Themen 2
P eingebundene *.jar- Files Allgemeine Java-Themen 28
G policy files laden? Allgemeine Java-Themen 8
T Files an das Betriebsystem übergeben such ideen! Allgemeine Java-Themen 3
M auf files des packages zugreifen Allgemeine Java-Themen 2
A Versionierung von Class-Files Allgemeine Java-Themen 10
vogella Korrektur der Filetypenzuordnung für .jar Files unter Window Allgemeine Java-Themen 2
S Files umbennen Allgemeine Java-Themen 4
M laden von Klassen aus jar files Allgemeine Java-Themen 2
R Drag und Drop von externen Files geht nur als Application Allgemeine Java-Themen 2
V Jar Files Auf meinem Handy Allgemeine Java-Themen 7
D Files einlesen (XML Files) Allgemeine Java-Themen 2
N Problem mit jar und ant: kann files nicht lesen! Allgemeine Java-Themen 15
P Fortschrittszustand von gezippten Files anzeigen Allgemeine Java-Themen 6
S JAR-Files Allgemeine Java-Themen 6
F Alle Files im Ordner nach Dateinamen durchsuchen Allgemeine Java-Themen 28
P Fehlermeldung beim Speichern eines java files Allgemeine Java-Themen 5
P jar files einbinden (Eclipse) Allgemeine Java-Themen 2
G Probleme mit Class Files Allgemeine Java-Themen 16
G rar files dekomprimieren Allgemeine Java-Themen 4
V INI Files, Properties etc. Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben