- Registriert
- Nov. 2010
- Beiträge
- 273
Naja ich werde jedenfalls weiterhin die normale Instanzierungsmethode verwenden 
Wieso, das passt doch dann so wie ich es gelöst habe ( bist auf das, das es net geht).
In jedem beispiel welches ich gefunden habe steht:
liste.contains(zuSuchendesWort)
und das mache ich doch.
Ich übergebe der Methode eine Liste von zu überprüfenden Wörtern und das File selbst, und dann wird halt geschaut ob der Name des Files oder ein Teil davon in der Liste vorhanden ist und dann gibts true/false zurück.
Wenns true ist, wird er dann halt in mein dataList geschrieben.
endsWith() wäre nicht die beste Lösung.
Die Methode isWantedFile() schaut ob der mime-type vorhanden ist.
Bei searchByName will ich nach einem Namen suchen, mkv usw hab ich jetzt nur aus gemütlichkeit gewählt.
Okey, das ich hier kein exists() benötige sehe ich ein.
Das Problem ist, wenn ich canRead() nicht verwende schmeist er mir sofort ne Fehlermeldung.
Wie kann ich das umgehen das ich locked ordner lesen kann, die lesbar sind?
Sprich, in C:\\ sind ein paar ordner mit nem Schloss gezeichnet, ein paar davon kann ich anschaun, andere wiederrum nicht. Wie kann ich Java sagen, dass ich die lesen kann?
Sowas: ?
Sodass er danach wieder in der Schleife weitergeht, oder wie meinst?
contains stimmt aber du rufst diese auf dem falschen Objekt auf bzw. übergibst das falsche Objekt. Wenn du contains auf der Liste aufrufst, suchst diese nach dem Vorkommen eines Dateinamens, den du übergibst. Dieser ist natürlich nicht darin enthalten. Du kannst also entweder über die Liste iterieren und contains(filename) auf jedem Element aufrufen oder du rufst auf der Liste contains(dateiendung) auf. Edit: endsWith() wäre in diesem Fall die bessere Wahl.
Wieso, das passt doch dann so wie ich es gelöst habe ( bist auf das, das es net geht).
In jedem beispiel welches ich gefunden habe steht:
liste.contains(zuSuchendesWort)
und das mache ich doch.
Ich übergebe der Methode eine Liste von zu überprüfenden Wörtern und das File selbst, und dann wird halt geschaut ob der Name des Files oder ein Teil davon in der Liste vorhanden ist und dann gibts true/false zurück.
Wenns true ist, wird er dann halt in mein dataList geschrieben.
endsWith() wäre nicht die beste Lösung.
Die Methode isWantedFile() schaut ob der mime-type vorhanden ist.
Bei searchByName will ich nach einem Namen suchen, mkv usw hab ich jetzt nur aus gemütlichkeit gewählt.
Afaik kann listFiles auch mal null zurück liefern, dass musst du abfangen. Dabei handelt es sich entweder um eine Datei oder du hast keine Rechte den Ordnerinhalt anzuzeigen.
Wegen letzterem solltest du auch canRead() nicht benutzten, da dies auch mal false liefern kann, obwohl der Ordner lesbar ist. Wenn man es ganz richtig machen will, solltest du auch exists() hier nicht nutzen, Stichwort "Race Condition". try-catch ist dir bekannt?
Okey, das ich hier kein exists() benötige sehe ich ein.
Das Problem ist, wenn ich canRead() nicht verwende schmeist er mir sofort ne Fehlermeldung.
Wie kann ich das umgehen das ich locked ordner lesen kann, die lesbar sind?
Sprich, in C:\\ sind ein paar ordner mit nem Schloss gezeichnet, ein paar davon kann ich anschaun, andere wiederrum nicht. Wie kann ich Java sagen, dass ich die lesen kann?
Sowas: ?
PHP:
try
{
if (fileList[i].canRead()) {
if (fileList[i].isDirectory()) {
System.out.println(repeat(" ", level * 2) + fileList[i]);
File f2 = new File(fileList[i].getPath());
build(f2.toString(), level);
} else {
if (fileList[i].isFile()) {
System.out.println(repeat(" ", level * 2) + fileList[i]);
if (isWantedFile(fileList[i], mimeTypeList())) {
dataList.add(fileList[i]);
}
// if (searchByName(fileList[i], nameSearchList())) {
// dataList.add(fileList[i]);
// }
}
}
}
}
catch(NullPointerException ex)
{
continoue;
}