
kukuk
App-Anbieter (kostenlos)
Ich kopiere einen Ordner rekursiv und lasse in einem Dialog die zu konvertierenden Dateien anzeigen. Jetzt habe ich das Problem, dass ich nicht weiß, wie ich überprüfen kann ob der Vorgang abgeschlosssen ist. Kann mir da jemand weiterhelfen?
Ich habe schon mit AsyncTask u.s.w ausprobiert, damit funktioniert es nicht, da er nach dem ersten Durchlauf denkt er sei fertig obwohl im Hintergrund sich die Funktion wieder gestartet hat.
Ich habe schon mit AsyncTask u.s.w ausprobiert, damit funktioniert es nicht, da er nach dem ersten Durchlauf denkt er sei fertig obwohl im Hintergrund sich die Funktion wieder gestartet hat.
Code:
public void copyDirectoryOneLocationToAnotherLocation(File sourceLocation, File targetLocation)
throws IOException {
if (sourceLocation.isDirectory()) {
if (!targetLocation.exists()) {
targetLocation.mkdir();
}
String[] children = sourceLocation.list();
for (int i = 0; i < sourceLocation.listFiles().length; i++) {
try {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
update_file_system_verzeichnis_txt.setText("Konvertiere:\n" + sourceLocation.toString());
// update_file_system_verzeichnis_txt.setText("Konvertiere:\n" + sourceLocation.toString().substring(cut, sourceLocation.toString().length()));
}
});
}catch (Exception e){
}
copyDirectoryOneLocationToAnotherLocation(new File(sourceLocation, children[i]),
new File(targetLocation, children[i]));
}
} else {
InputStream in = new FileInputStream(sourceLocation);
OutputStream out = new FileOutputStream(targetLocation);
// Copy the bits from instream to outstream
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
in.close();
out.close();
}
}