Kleine Sektflaschen Hochzeit
Wie kann ich einen Ordner überwachen und eine Befehlszeilenaktion auslösen, wenn eine Datei erstellt oder bearbeitet wird? Ich muss auf meinem Vista-Computer eine Art Skript einrichten, damit beim Hinzufügen einer Datei zu einem bestimmten Ordner automatisch ein Hintergrundprozess ausgelöst wird, der auf die Datei angewendet wird. (Der Hintergrundprozess ist nur ein Befehlszeilenprogramm, das den Dateinamen zusammen mit einigen anderen vordefinierten Optionen als Argument verwendet. ) Ich möchte dies aus Leistungs- und Wartungsgründen mit systemeigenen Windows-Funktionen tun, sofern dies möglich ist. Ich habe mich mit der Verwendung von Task Scheduler befasst, aber nachdem ich das Triggersystem eine Weile durchgesehen habe, konnte ich nicht viel daraus lernen und bin mir nicht einmal sicher, ob es in der Lage ist, das zu tun, was ich brauche. Ich würde mich über Vorschläge freuen. Vielen Dank! Verzeichnis überwachen bach.fr. Antworten: Bei der Arbeit verwenden wir Powershell, um Ordner zu überwachen. Es kann seit Windows Vista ( und PowerShell sind vorinstalliert) ohne zusätzliche Tools verwendet werden.
Ohnehin sollte man niemals Pfade von Hand zusammen bauen, sondern mit der Pfad Klasse. Dann hast Du noch so unlogische und vermutlich fatalere Fehler wie string path3 = @"c:\sql\" +; string path4 = @"c:\sql\"; (path3, path4); Du nimmst die Quell-Datei im überwachten Ordner, erstellt eine neue Datei im überwachten Ordner mit einem fixen Name. Wozu führt das: es wird ein neuer Event geworfen, mit der Ziel-Datei als Quell-Datei. Das hat zur Folge, dass Du Dir eine Endlos-Event-Schleife gebaut hast, weil Du auf selbst erzeugtes Zeug hörst und Du Dir selbst den Prozess neu startest. Wenn Du mal den Debugger anwirfst, dann solltest Du auch merken, dass hier was nicht stimmen kann. Also: niemals im überwachten Folder Dateien erstellen, die dem Watch-Pattern entsprechen und Du Dir nen endless Loop baust. Zitat Es wird nicht auf die Überwachung des Ordners gewartet, der dann ein neues Ereignis auslöst. Ordner auf neue Dateien überwachen. Das hast Du auch nirgends programmiert. Wenn Du das willst, dann musst Du das entsprechend auch im Code umsetzen;-) Dann abschließend noch der Hinweis, dass man Zeiten in solch einem Fall besser als UTC speichert und nicht als Systemzeit.
#8 messi hat gesagt. : Ja, es ist ein Stream. Wie ist denn die Syntax? #9 Anonymous hat gesagt. : Hast Du schon mal in der API nach der Syntax geguckt?????? #10 sky80 hat gesagt. : Ja. mit read() #11 Welche Klassen benötigt man dafür? #12 Wofür? Batch-File: Dateien auflisten – ascii_ch. Du hast doch gesagt, dass Du einen Stream hast. Bei InputStream gibt es die Methode read #13 Lockerbleiben, das sich gegenseitig anbleuffen nützt euch garnix Code: BufferedReade in = new BufferedReader(new FileReader(fileDasDuLesenWillst)); String k = null; for (int i = 0; i< 2000; i++) { k = adLine();} //so jetzt hast du deine, hab' jetzt leider nicht kapiert, was du damit willst? #14 MPW hat gesagt. : Vielen Dank! Das... Ich muss ein Programm schreiben, das ein Verzeichnis überwacht. Sobald eine bestimmte Datei in diesem Verzeichnis steht, soll diese Datei gelesen werden und bestimmte Datensätze daraus in eine neue Datei geschrieben werden. Die Datei hat eine Breite von 2000 Stellen und ab Stelle 15 im Satz in der Länder 10 ist ein Feld -Objekt- das ich abfragen muss.
Es gibt auch eine XML-Konfigurationsoption. Verzeichnisse auf Veränderungen überwachen | IT-Learner.de. Die eigentliche Ordnerabfrage wird als Windows-Dienst ausgeführt (wird also bei jedem Neustart automatisch gestartet). Wenn eine neue Datei in einem abgefragten Ordner gefunden wird, kann eine Anwendung automatisch gestartet werden (Sie können Ihre eigenen benutzerdefinierten Befehlszeilenargumente angeben). Es kann auch andere Dinge wie das Kopieren / Verschieben von Dateien erledigen. Die Aktivität kann auch in einer Protokolldatei protokolliert werden, und es gibt andere erweiterte Vorgänge.