FTPClient.freeze()

Unicate

Erfahrenes Mitglied
Also ich habe dieses Problem und deswegen habe ich heute ein "wenig" rum experimentiert. Und werd langsame stinkig weil ich immer noch keine Ergebnisse sehe. Und ich auch nicht schlauer geworden bin.

Ziel ist es:
Eine Klasse zu schreiben welche mehrere Files mit einem mal hochladen kann.

Hauptproblem: die Methode (FTPClient member) storeFileStream gibt nur beim uploaden der ersten datei etwas zurück.
Danach gibt sie null zurück.






Hier erstmal der aktuelle Code
Code:
int fileCounter = 0;
                byte[] buffer = new byte[1024];
                int replyCode = 0;
                DebugMessenger.printMessage("starting transfer...");
                
                for(File file : fileQueue) {
                	DebugMessenger.printMessage("Transfer file: " + file.getName() + " - " + ++fileCounter + "/" +fileQueue.size());
                    inputStream = new FileInputStream(file);
                  	
                    outputStream = client.storeFileStream(file.getName());                 	
                	if(!FTPReply.isPositivePreliminary(client.getReplyCode())) {
                  		DebugMessenger.printMessage("File transfer failed.");
                  		DebugMessenger.printMessage(client.getReplyString());
                  		inputStream.close();
                  		outputStream.close();
                  		disconnect();
                  		return false;
                  	}
                    progressSingle = 0;
                    maxBytesSingle = (int)file.length();
                    while(true){
                        bytes = inputStream.read(buffer);
                        if (bytes < 0)
                            break;
                        outputStream.write(buffer, 0, bytes);
                        progressSingle += bytes;
                        progressMulti += bytes;
                    }
                    if(!client.completePendingCommand()) {
                        disconnect();
                        DebugMessenger.printMessage("File transfer failed.");
                        return false;
                    }
                    inputStream.close();
                    outputStream.close();
                }
                disconnect();
                DebugMessenger.printMessage("Transfer complete");
                done = true;
                return true;

Das ich auch korrekt eingeloggt bin setzt dieser Code vorraus.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück