Dateinamen auslesen mit Java...?

Ralf3b

Grünschnabel
Hi@all

Vielleicht kann mir jemand helfen...
Ich wüßte gerne wie ich alle Dateinamen eines bestimmten Typs (z.B. jpg) auf einem Laufwerk (in Java) auslese und in eine Datenbank transferiere.

Weiß nicht wie ich da anfangen soll.
 
Tach.
Du müsstest alle Verzeichnisse rekursiv durchgehen und
Dort über das objekt File die Dateien auf ihre Endungen überprüfen.
Geht zu machen, aber ist nicht so einfach wie du dir das wahrscheinlich
vorstellst.
 
Code:
public class JPGFilter implements FileFilter {
public boolean accept(File f) {
return f.isFile() && f.getName().endsWith(".jpg");
}
}

Code:
private FileFilter ff = new JPGFilter();
 
public void readJPGs() throws IOException {
List byteList = new ArrayList();
File[] root = File.listRoots();
for (int i = 0; i < root.length; i++) {
	readJPG(root[i], byteList);
}
byte[] b;
Iterator it = byteList.iterator();
while (it.hasNext()) {
	b = (byte[])it.next();
 
	//hier wird die bei Dir VORHANDENE Datenbankverbindung verwendet, um z.B. Updates bzw. Inserts auszuführen. Dein PreparedStatement hat dazu die Methode "setBytes(...)", hier gibst Du den Index des Parameters an und übergibst den Byte-Array
 
}
}
 
private void readJPG(File f, List byteList) throws IOException {
if (path.isDirectory()) {
	File[] path = f.listFiles(ff);
	for (int i = 0; i < path.length; i++) {
	 readJPG(path[i], byteList);
	}
}
else {
	ByteArrayOutputStream out = new ByteArrayOutputStream();
	FileInputStream in = new FileInputStream(f);
	int len = 0;
	byte[] b = new byte[256];
	while ((len = in.read(b)) > -1) {
	 out.write(b, 0, len);
	}
	in.close();
	byteList.add(out.toByteArray());
	out.close();
}
}
 

Neue Beiträge

Zurück