Me gustaría saber si es posible saber cuándo se agrega un archivo a una carpeta en C#. Sé que puedes ver el momento de la creación y muchas otras cosas en FileInfo, pero nok cuando se agregó.Averiguar cuándo se agrega el archivo a la carpeta
Respuesta
Puede usar el System.IO.FileSystemWatcher. Proporciona métodos para hacer exactamente lo que quiere hacer:
FileSystemWatcher watcher = new FileSystemWatcher()
{
Path = stringWithYourPath,
Filter = "*.txt"
};
watcher.Created += new FileSystemEventHandler(OnChanged);
Mira la clase FileSystemWatcher - http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx
Encontrarás un ejemplo completo hacia la parte inferior de la página.
FileSystemWatcher es un componente muy potente, lo que nos permite conectarse a los directorios y observar los cambios específicos dentro de ellos, como creación de nuevos archivos, adición de subdirectorios y renombrado de archivos o subdirectorios. Esto permite detectar fácilmente cuando se crean, modifican o eliminan ciertos archivos o directorios. Es es uno de los miembros del espacio de nombres System.IO.
Tiene eventos y theyare
- Creado - levantado cada vez que se crea un directorio o archivo.
- Eliminado: se genera cada vez que se elimina un directorio o archivo.
- Renombrado: se genera cada vez que se cambia el nombre de un directorio o archivo.
- Modificado: se genera cada vez que se realizan cambios en el tamaño, los atributos del sistema, la última vez que se escribe, el último tiempo de acceso o los permisos de seguridad NTFS de un directorio o archivo.
Para la solución "instantánea" es posible utilizar esta biblioteca https://github.com/igorcrevar/Directory-Snapshot-Difference-Csharp
- 1. ¿Qué es el archivo "log4net.xml" que se agrega a su carpeta bin
- 2. Cuándo se agrega una hoja de estilo a document.styleSheets
- 3. ¿Cuándo copia Eclipse los recursos a la carpeta de salida?
- 4. ¿Cómo se agrega información JOIN a un archivo rails seeds.rb?
- 5. Ejecutar un comando de shell cuando se agrega un archivo
- 6. MySQL ¿cómo se agrega a un archivo con INTO OUTFILE?
- 7. ¿Cuándo/cómo se agrega una aplicación a la ventana del mezclador de volumen de Windows 7?
- 8. SharePoint SPFolder.SubFolders.Add no agrega realmente una carpeta
- 9. ¿Cómo puedo averiguar cuándo se eliminó una parte de un archivo en git?
- 10. El archivo JAR se ve como la carpeta
- 11. ¿Cuándo se realizó la extracción de un archivo en TFS?
- 12. Flex: ¿Sabes cuándo se compiló el archivo swf en ejecución?
- 13. Averiguar si se usa el recurso
- 14. copiando todo el contenido de la carpeta a otra carpeta utilizando el archivo por lotes?
- 15. Copie el archivo a la carpeta de activos
- 16. UIBarButtonItem icono blanco cuando se agrega a través de IB, negro cuando se agrega mediante programación
- 17. ¿Detecta cuándo se agrega una nueva propiedad a un objeto Javascript?
- 18. ¿Cómo puedo determinar cuándo se renombró el archivo más recientemente?
- 19. Deshabilitar el desplazamiento de UISearchbar que se agrega a UITableView
- 20. ¿Evento disparado cuando el elemento se agrega a ListView?
- 21. ¿por qué se agrega un carácter # a la url?
- 22. ¿La importación de un archivo .sql a MySQL sobrescribe el db existente o se agrega a él?
- 23. Concurrente se agrega al mismo archivo con Perl
- 24. Averiguar dónde se redirigió el curl
- 25. ¿Cuál es la forma más fácil/rápida de averiguar cuándo se creó una rama git?
- 26. python: se agrega al mismo archivo desde varios subprocesos
- 27. Cómo copiar un archivo de una carpeta a otra carpeta
- 28. Impedir que el modelo Backbone.js se valide cuando se agrega por primera vez a la colección
- 29. ¿Cuándo se carga el archivo de configuración de logback?
- 30. El archivo de lectura de PHP agrega longitud de contenido a la salida
En realidad no lo sé Cualquiera C#, pero en general sé que dicha información no se almacena en el sistema de archivos por lo que no debería ser disponible. La única opción que puedo pensar es tomar "instantáneas" de una carpeta, verificando qué archivos hay allí en ese momento. Luego, vuelve y toma otra "instantánea" y compara los dos, y vea si su archivo se ha agregado mientras tanto. Tendría que decidir sobre un intervalo adecuado entre instantáneas. –
¿Quiere saber cuándo se agregó el archivo a una carpeta de forma retroactiva o recibir una notificación cuando ocurra (según FileSystemWatcher)? –
Creo que iré por la solución de "instantánea". El FileSystemWatcher realmente no es lo que estoy buscando. ¡Gracias! – Mikkel