Vorrei sapere se è possibile scoprire quando un file viene aggiunto a una cartella in C#. So che puoi vedere l'ora della creazione e molte altre cose nel FileInfo, ma no quando è stato aggiunto.Scopri quando il file viene aggiunto alla cartella
risposta
È possibile utilizzare System.IO.FileSystemWatcher. Fornisce metodi per fare esattamente quello che si vuole fare:
FileSystemWatcher watcher = new FileSystemWatcher()
{
Path = stringWithYourPath,
Filter = "*.txt"
};
watcher.Created += new FileSystemEventHandler(OnChanged);
Partenza classe FileSystemWatcher - http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx
Troverete un esempio completo verso la parte inferiore della pagina.
FileSystemWatcher è una componente molto potente, che ci permette di connettersi alle directory e guardare per le modifiche specifiche al loro interno, come ad esempio creazione di nuovi file, aggiunta di sottodirectory e ridenominazione di di file o sottodirectory. Ciò rende possibile rilevare facilmente quando determinati file o directory vengono creati, modificati o cancellati. È uno dei membri dello spazio dei nomi System.IO.
Ha eventi e theyare
- Creato - sollevato ogni volta che si crea una directory o file.
- Eliminato - generato ogni volta che una directory o un file vengono cancellati.
- Rinominato - generato quando il nome di una directory o di un file viene modificato.
- Modificato in caso di modifiche alle dimensioni, agli attributi di sistema, all'ultima ora di scrittura, all'ultima ora di accesso o alle autorizzazioni di sicurezza NTFS di una directory o di un file.
Per la soluzione "istantanea" è possibile utilizzare questa libreria https://github.com/igorcrevar/Directory-Snapshot-Difference-Csharp
- 1. Che cos'è il file "log4net.xml" che viene aggiunto alla cartella bin
- 2. Esegue un comando shell quando viene aggiunto un file
- 3. Scopri quando il layout della tastiera viene modificato
- 4. file JavaScript esterno non è sempre aggiunto quando viene eseguito il pallone
- 5. SVN come risolvere i nuovi conflitti ad albero quando il file viene aggiunto su due rami
- 6. Delphi 5 causa EAccessViolation quando manifest viene aggiunto come risorsa
- 7. Aggiornare una direttiva treeview angolare quando un nuovo oggetto viene aggiunto alla raccolta
- 8. Come animare un marcatore quando viene aggiunto alla mappa su Android?
- 9. django finali non Slash che viene aggiunto
- 10. Ricevi una notifica quando qualcosa viene aggiunto a NSPasteboard
- 11. WPF: genera un evento quando l'elemento viene aggiunto in ListView
- 12. ObservableCollection setter non si attiva quando viene aggiunto l'articolo
- 13. Scrittura accesso alla cartella Programmi
- 14. Cosa viene aggiunto a un file eseguibile quando si collega a una libreria condivisa?
- 15. XCode: perché il mio evento non viene aggiunto al calendario?
- 16. gitignore - fatale: nessun file aggiunto
- 17. Il commit viene aggiunto al master nelle ultime 24 ore
- 18. Un carattere speciale viene aggiunto prima del §
- 19. iPhone UIWebView loadHtmlString non aggiunto alla cronologia
- 20. prepareForSegue chiamato prima di DoesSelectRowAtIndexPath solo quando viene aggiunto il terzo passaggio
- 21. ASP.NET non è autorizzato ad accedere alla risorsa richiesta quando accede alla cartella temporanea
- 22. Notifica Delphi quando un file viene aggiornato
- 23. File URI link alla cartella locale in IE7 non funziona
- 24. Gancio Web Dropbox sul file aggiunto?
- 25. Accesso alla cartella WP8
- 26. Perché jsessionid viene aggiunto a ciascun URL?
- 27. Dove viene salvato un componente aggiuntivo di Excel quando viene aggiunto e installato a livello di programmazione?
- 28. Quando viene caricato il file di configurazione di logback?
- 29. tkinter - Come smettere di cambiare le dimensioni del frame quando viene aggiunto il widget?
- 30. quando viene aggiunto il div con posizione assoluta non è possibile fare clic sui collegamenti
Io in realtà non so qualsiasi C#, ma in generale so che tali informazioni non vengono memorizzate nel file system in modo da non dovrebbe essere a disposizione. L'unica opzione che posso pensare è di prendere "istantanee" di una cartella, controllando quali file ci sono in quel momento. Quindi, torni indietro e prendi un'altra "istantanea" e confronta i due, e verifica se il tuo file è stato aggiunto nel frattempo. Dovresti decidere un intervallo adeguato tra le istantanee. –
Intendi scoprire quando il file è stato aggiunto a una cartella in modo retrospettivo o per ricevere una notifica quando si verifica (come per FileSystemWatcher)? –
Penso che andrò per la soluzione "istantanea". FileSystemWatcher non è proprio quello che sto cercando. Grazie! – Mikkel