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
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