Ich soll eine kleine Anwendung schreiben, welche es ermöglicht CDs nach einem gewissen System digital zu archivieren.
Der Fortschritt wird mit einer Progressbar angezeigt, welche den Fortschritt über die vorhandene Datenmenge im Zielordner und der vorhandenen Datenmenge im Ursprungsordner ermittelt.
Wenn ich Daten von Ordner zu Ordner kopiere, funktioniert das auch ohne Probleme. Allerdings nicht bei einer CD oder wenn ich Daten über das Netz kopiere.
Das komische ist, dass es keinen Exception gibt oder sonstiges.
In dem Codeblock steht wo es nicht mehr weiter geht.
Gruß
Marlon
Der Fortschritt wird mit einer Progressbar angezeigt, welche den Fortschritt über die vorhandene Datenmenge im Zielordner und der vorhandenen Datenmenge im Ursprungsordner ermittelt.
Wenn ich Daten von Ordner zu Ordner kopiere, funktioniert das auch ohne Probleme. Allerdings nicht bei einer CD oder wenn ich Daten über das Netz kopiere.
Code:
protected Void doInBackground() throws Exception
{
String archiv = paths[0];
String name = paths[1];
String laufwerk = paths[2];
int start = 0;
int target = 100;
boolean end = false;
while (start < target && end == false)
{
//Dieser Aufruf funktioniert noch
long byteSizeTarget = getDirSize(new File(archiv + "//" + name));
//getDirSize hat einen Rückgabewert aber die Funktion stoppt
long byteSizeFiles = getDirSize(new File(laufwerk + "//"));
Double iByteSizeTarget = Double.valueOf(byteSizeTarget);
Double iByteSizeFiles = Double.valueOf(byteSizeFiles);
Double factor = 100.00;
if(iByteSizeTarget != 0)
{
start = (int)Math.round(iByteSizeTarget / iByteSizeFiles * factor);
}
else
{
end = true;
}
publish(start);
}
return null;
}
Code:
public long getDirSize(File dir)
{
long size = 0;
File[] files = dir.listFiles();
if (files != null)
{
for (int i = 0; i < files.length; i++)
{
if (files[i].isDirectory())
{
size += getDirSize(files[i]);
}
else
{
size += files[i].length();
}
}
}
return size;
}
Das komische ist, dass es keinen Exception gibt oder sonstiges.
In dem Codeblock steht wo es nicht mehr weiter geht.
Gruß
Marlon