Hallo,
vorweg: Ich habe folgenden link schon besucht http://www.java-forum.org/allgemeines/33129-verzeichnisse-durchsuchen-bearbeiten-auslesen.htmlhttp:// und einige Fehler in meinem Ursprungscode dadurch behoben.
In meinem Code probiere ich die Dateinamen ( absoluter Pfad) in eine ArrayList zu verfrachten. Dies klappt soweit auch sehr gut jedoch nimmt er nicht die Dateien aus den Unterordnern.
Zur Orientierung da mein Code sicherlich wieder sehr unübersichtlich ist werden beim Methodenaufruf von fileSearcher 3 werte erwartet.
1. Was für Dateitypen soll er rausfiltern (.exe,.gif etc..)
2. Der Pfad in dem er anfangen soll zu suchen ( C:\....)
3. Ob er die Unterverzeichnisse auch durchsuchen soll ( true oder false)
Hier der Code: Der Fehler liegt wohl in Zeile 18-20 aber zum Teufel komm raus weiß ich nicht warum.
cuanu
vorweg: Ich habe folgenden link schon besucht http://www.java-forum.org/allgemeines/33129-verzeichnisse-durchsuchen-bearbeiten-auslesen.htmlhttp:// und einige Fehler in meinem Ursprungscode dadurch behoben.
In meinem Code probiere ich die Dateinamen ( absoluter Pfad) in eine ArrayList zu verfrachten. Dies klappt soweit auch sehr gut jedoch nimmt er nicht die Dateien aus den Unterordnern.
Zur Orientierung da mein Code sicherlich wieder sehr unübersichtlich ist werden beim Methodenaufruf von fileSearcher 3 werte erwartet.
1. Was für Dateitypen soll er rausfiltern (.exe,.gif etc..)
2. Der Pfad in dem er anfangen soll zu suchen ( C:\....)
3. Ob er die Unterverzeichnisse auch durchsuchen soll ( true oder false)
Hier der Code: Der Fehler liegt wohl in Zeile 18-20 aber zum Teufel komm raus weiß ich nicht warum.
Java:
import java.io.File;
import java.util.ArrayList;
public class FileFinder
{
public ArrayList<String> fileSearcher(String fileType, String directory, Boolean subDirectory)
{
File[] fileAll = new File(directory).listFiles();
ArrayList<String> foundFile = new ArrayList<String>();
if(fileAll != null) // when directory empty stop here
{
if(subDirectory == true)
{
//Gets all files including subDirectories
for( int i = 0; i < fileAll.length; i++)
{
if(fileAll[i].isDirectory()) // if File is a directory
{
fileSearcher(fileType, fileAll[i].getAbsolutePath(), true);
}
else
{
//only adds the searched fileType to the array
if(fileTypeFinder(fileAll[i].getAbsolutePath(), fileType) == true)
{
foundFile.add(fileAll[i].getAbsolutePath());
}
}
}
}
else
{
for( int j = 0; j<fileAll.length; j++)
{
//only adds the searched fileType to the array
if(fileTypeFinder(fileAll[j].getAbsolutePath(), fileType) == true)
{
foundFile.add(fileAll[j].getAbsolutePath());
}
}
}
}
return foundFile;
}
// compares the file and the fileType your are looking for (ex. JPG,GIF,EXE...)
public boolean fileTypeFinder (String file, String fileType) // fileType same as in fileSearcher
{
String txt = file.substring((file.lastIndexOf(".")+1));
if(txt.equalsIgnoreCase(fileType))
{
return true;
}
return false;
}
}
cuanu