Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
19.07.2011, 13:09 (Dieser Beitrag wurde zuletzt bearbeitet: 19.07.2011 13:25 von DrRino.)
Ich möchte gern einige Ordner von einem Messrechner automatisiert in einem bestimmten Zeitintervall auf einen Server kopieren.
Dazu verwende ich die "Kopieren" Funktion aus Labview (Version 8.6).
Allerdings gibt es folgendes Problem:
Sobald der Ordner den ich im ersten Durchgange kopiert habe existiert, wird im zweiten Durchgang der Ordner nicht mit eventuell neu hinzugekommenen Dateien (z.B. Messdaten) beschrieben. Ich habe zwar die Möglichkeit hier die Daten zu überschreiben, allerdings macht sich das bei mehreren hundert Megabyte pro Messdatei ungünstig, jedes mal alles zu löschen und die Dateien neu zu kopieren, die eigentlich schon da waren.
Ansonsten müsste ich jedes Mal überprüfen ob die Datei schon vorhanden ist und die zusätzlichen Dateien im Quellsystem auf das Zielsystem kopieren. Allerdings müsste man dann noch prüfen ob dabei Unterordner mit Dateien und weiteren Unterordnern vorhanden sind. Und das eben für alle möglichen Unterordner.
Gehts das auch irgendwie etwas einfacher?
Edit:
Wenn es garnicht anders geht mit der "rekursiven Dateiliste" müsste man doch jede Datei vom Änderungsdateum vergleichen ob eine Datei vom Quellsystem nicht neuer ist, als die auf dem Zielsystem und die neuere vom Quellsystem kopieren.
Wie genau müsste man das denn gestalten für beliebige Unterordner?
und wenn du einfach per SystemExec ein Tool wie RoboCopy oder xcopy (frei von MS erhältlich) mit den passenden Parametern aufrufst? Warum das Rad neu erfinden?
Ich hab mal ein wenig mit dem Tool Robocopy rumgespielt. Wenn ich meinen Befehl normal über die Kommandozeile ausführe funktioniert das problemlos.
Führe ich das aber über System Exec.vi aus bekomme ich immer die Fehlermeldung über Labview:
"Der Befehl "robocopy" ist entweder falsch geschrieben oder konnte nicht gefunden werden."
Vor jedem String steht allerdings wie in der Hilfe verlangt: cmd /c
Ich habe hier auch mit verschiedenen Parametern experimentiert bin allerdings zu keinem Ergebnis gekommen.
Ich habe die Befürchtung, dass er mit den Paramtern von robocopy nicht zurecht kommt.
Edit: Ich habe den Fehler gefunden.
Das problem lag darin den Arbeitspfad von robocopy mit zu definieren, da er sonst das Programm nicht findet. Warum er diesen allerdings benötigt ist mir schleierhaft, da die cmd.exe den Pfad offensichtlich kennt.