Узнайте, когда файл добавлен в папку - PullRequest
9 голосов
/ 07 февраля 2012

Я хотел бы знать, возможно ли узнать, когда файл добавляется в папку в C #. Я знаю, что вы можете видеть время создания и многое другое в FileInfo, но не знаете, когда он был добавлен.

Ответы [ 4 ]

15 голосов
/ 07 февраля 2012

Вы можете использовать System.IO.FileSystemWatcher . Он предоставляет методы для выполнения именно того, что вы хотите сделать:

FileSystemWatcher watcher = new FileSystemWatcher()
{
    Path = stringWithYourPath,
    Filter = "*.txt"
};
// Add event handlers for all events you want to handle
watcher.Created += new FileSystemEventHandler(OnChanged);
// Activate the watcher
watcher.EnableRaisingEvents = true

Где OnChanged - обработчик событий:

private static void OnChanged(object source, FileSystemEventArgs e)
{
    Console.WriteLine($"File: {e.FullPath} {e.ChangeType}");
}
7 голосов
/ 07 февраля 2012

Проверьте класс FileSystemWatcher - http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx

Вы найдете полный пример внизу страницы.

3 голосов
/ 07 февраля 2012

FileSystemWatcher является очень мощным компонентом, который позволяет нам подключаться к каталогам и отслеживать определенные изменения в них, такие как создание новых файлов, добавление подкаталогов и переименование файлов илиподкаталоги.Это позволяет легко определять, когда определенные файлы или каталоги создаются, изменяются или удаляются.Он является одним из членов пространства имен System.IO.

Полный учебник здесь

У него есть события, и они

  • Создано - вызывается при создании каталога или файла.
  • Удалено - вызывается при удалении каталога или файла.
  • Переименовано - вызывается всякий раз, когда имя каталога илифайл изменен.
  • Изменен - ​​генерируется всякий раз, когда вносятся изменения в размер, системные атрибуты, время последней записи, время последнего доступа или разрешения безопасности NTFS для каталога или файла.
0 голосов
/ 02 июня 2015

Для «снимка» решения можно использовать эту библиотеку https://github.com/igorcrevar/Directory-Snapshot-Difference-Csharp

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...