Java Programm zum Datei Upload?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Für einen FTP Upload/Download lohnt sich folgende die Library:

http://commons.apache.org/proper/commons-net/

Hier gibt es auch entsprechende Beispiel für Upload und Download.

Das Programm soll aus bestimmten Ordnern die Dateien an einen FTP Server schicken 

  • Für die Verwendung des FTP: Siehe vorheriger Link
  • Welche Ordner das Betrifft, könntest du in einer Property-Datei vermerken(*)

dann je nach Einstellung die Datei im eigentilchen Ordner löschen oder in einen anderen Ordner "archivieren"

  • Diese Einstellung würde ich ebenfalls in einer Property-Datei vermerken
  • Für das 'archivieren' gäbe es zwei Ansätze:   1. File#RenameTo (Verschieben). Hierüber erhält man die Info ob es "geklappt hat" oder nicht, über den boolean Rückgabewert. 2. Files.copy/delete: Hier könnte man eventuell auf Exceptions reagieren als alternative Auskunft über den Verlauf des Kopierens/Verschiebens.

 eine Ausgabe über Uhrzeit, Name und Status der geschickten Datei gegeben werden, welche danach in ein LogFile geschrieben wird

Für eine Ausgabe in eine Log-Datei lohnt sich die Verwendung eines Loggers, siehe Beispiel hier:

http://stackoverflow.com/questions/15758685/how-to-write-logs-in-text-file-when-using-java-util-logging-logger

* Property-Datei: 

Über: java.util.Properties lässt sich dies sehr leicht umsetzen: Siehe Methoden:

  • store
  • load

Die Properties lassen sich wie eine Map verwenden. - Mein Tipp wäre es jedoch noch: Lass eine Default-Property-Datei erstellen, sollte es keine geben, oder sollte die gegebene so modifiziert sein, dass sie nicht vollständig ist.

KnusperPudding  12.12.2016, 09:39

Noch ergänzend:

Du kannst dir überlegen, "wie" dein Programm laufen soll:

  • Gibt es eine GUI, bei der man z.B. auf "aktualisieren" drückt?
  • Wird die Aktion einmalig durch das Starten ausgeführt? (und vielleicht als geplanter Task regelmäßig gestartet?)
  • Soll die Anwendung permanent laufen und alle X Minuten ein Verzeichnis Scannen?

Ansonsten hätte ich noch die "Klassiker" als Tipps:

  • Verwenden von sinnvollem Trennen der Klassen
  • Gute Auswahl von Klassennamen und Methodennamen
  • Kurze Methoden zur Leserlichkeit und zum Trennen von Themen der Aufgaben
  • Gedanken machen vom 'Fehlermanagement': Wie Reagierst du auf erwartete und/oder unerwartete Fehler (z.b: Server nicht erreichbar, ungültige URL, Dateipfad existiert nicht, ungültige Zeichen im Dateipfad, etc..)
  • Welche Variablen könnten Instanz-übergreifend relevant sein und somit auch als statische Variable deklariert werden (z.B. Properties)
2
EGitarre 
Fragesteller
 14.12.2016, 09:31
@KnusperPudding

Habe grade Erfahren, dass ich das mit SFTP machen soll, wegen Sicherheit im Firmennetz blabla, muss ich da was anderes noch beachten?

0
KnusperPudding  15.12.2016, 08:26
@EGitarre

In dem Falle Bei der Apache Commons Library statt der FTPClient Klasse verwenden, sondern FTPSClient.

Wobei FTPSClient eine Ableitung von FTPClient ist, heißt für deine Implementierung, du kannst das relativ flexibel gestalten:

boolean isFTPS = ...;

...

FTPClient ftpClient;

if (isFTPS) {
   ftpClient = new FTPSClient();
} else {
   ftpClient = new FTPClient();
}

(Nur als Beispiel).

2

DH an KnusperPudding der dir eigentlich schon alles gesagt hat, dem nichts mehr hinzuzufügen ist bis auf den fertigen Quellcode.

Schätzungsweise max. 200 Codezeilen wenn du es strikt nach Objektorientierter Programmierweise umsetzt.

Dafür wirst du wenn du dir alle Bibliotheken zusammen suchen must und so fit bist und am Projekt immer arbeiten kannst aller höchstens 2-3 Wochen brauchen.

Ein begabter Programmierer würde die Aufgabe warscheinlich in 2-3 Stunden erledigen und dabei eine Kaffee Pause einlegen.

Nur gefragt: Muss es extra Java sein? Wenn das der Fall ist, schade, denn darin hab ich keine Praxis. In VB6, VB.Net, C# wäre ich bereit dir zu helfen.

Woher ich das weiß:Berufserfahrung – Softwareentewickler / Unternehmensberater bei CSDIT iR