|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Aug 2011
Messaggi: 5
|
girare programma quando un file viene modificato
Buongiorno a tutti,
ho un server windows nel quale alcuni file di dati in una cartella vengono periodicamente modificati. La mia domanda è: come fare in modo che ogni volta che un file in quella cartella viene modificato, un altro programma parta in automatico e, possibilmente, utilizzi il nome del file modificato? Ringrazio anticipatamente per ogni suggerimento! mattia |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: Aug 2011
Messaggi: 5
|
grazie mille per la risposta velocissima!
quindi da quanto ho capito mi basterebbe creare un programma in C# che venga eseguito all'avvio, e che avvii matlab passandogli come argomento il nome dell'ultimo file modificato. Dimentico qualcosa? Scusate ma non ho nessuna esperienza con .NET e quindi sono un po' spaesato |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Si', esatto. Funzionale.
Avresti un processo sempre attivo, ovvero una brutta finestra DosBox nera, oppure una finestra semivuota. Ulteriori successive migliorie potrebbero essere: 1. Creare un servizio 2. Creare un servizio che legge la configurazione da un file ovvero la directory da monitorare, eventuali filtri sui file (ES: *.m) 3. Creare un servizio e anche un'applicazione che posssa cambiare i parametri del servizio al volo 4. Creare un servizio e anche un'applicazione che posssa cambiare i parametri del servizio al volo, e l'applicazione presente sulla statusbar nelle iconcine in basso a destra, apribile con menu contestuale, etc. Ma non conoscendo nulla di .NET, e magari poco di programmazione, non ti aspettare che il tutto sia semplice. Una volta scritto risulta essere solo un centinaio di linee di codice, ma per arrivarci al strada potrebbe essere in salita. Inizia con la versione grezza ma funzionale, e poi ci si pensa. (Agile)
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
|
|
|
|
#5 |
|
Junior Member
Iscritto dal: Aug 2011
Messaggi: 5
|
grazie ancora per i suggerimenti molto utili. comincerò con la mia versione ed eventualmente aggiungerò il resto delle migliorie!
|
|
|
|
|
|
#6 |
|
Junior Member
Iscritto dal: Aug 2011
Messaggi: 5
|
ho quasi completato la versione "grezza", ma anche qui ho due problemi:
Codice:
private static void OnChanged(object source, FileSystemEventArgs e)
{
Console.WriteLine("File: " + e.FullPath + " " + e.ChangeType);
var process = new Process {
StartInfo = new ProcessStartInfo {
FileName = "C:\\Program Files\\MATLAB\\R2011a\\bin\\matlab.exe"
}
};
process.Start();
process.WaitForExit();
}
Inoltre, vorrei che il filewatcher si "fermasse" mentre matlab esegue la sua computazione, e ripartisse (possibilmente gestendo gli eventuali eventi accaduti nel tempo in cui era in pausa) una volta terminata la computazione di matlab. Solo che process.WaitForExit() non funziona perché credo che attenda solo l'avvio di matlab. Qualche soluzione più efficiente e meno macchinosa di creare un file watcher che monitori il file aperto da matlab? grazie |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:04.



















