Контроль изменений файлов windows

Как следить за изменениями файлов и папок в Windows

Если вы не единственный пользователь компьютера или просто хотите узнать, какие изменения произошли с вашими папками и файлами за определенный период времени, можно воспользоваться полезной утилитой FolderChangesView от Nirsoft .

Эти разработчики вообще предлагают массу замечательных бесплатных приложений, а самое главное, не обвешивают установщик тоннами бесполезных дополнительных панелей и программ «в нагрузку», как любят делать другие компании.

Что такое FolderChangesView?

FCV – это маленькая портативная утилита от Nirsoft Labs, позволяющая отслеживать содержимое папок или всего жесткого диска на наличие изменений. Программа выдает полный список созданных, измененных и удаленных файлов за весь период наблюдения. Можно следить не только за локальными дисками, но и за сетевыми (при наличии прав на их чтение).

Скачать FolderChangesView можно с официального сайта Nirsoft . Ссылка для загрузки ZIP-архива с исполняемым файлом находится внизу страницы. Скачав программу, создайте на рабочем столе папку «FCV» (или с любым другим подходящим названием) и извлеките в нее содержимое архива.

Запуск и использование FolderChangesView

Поскольку FCV – портативная утилита, устанавливать ее не требуется. Просто откройте папку, в которую распаковали архив, и дважды щелкните на файле «FolderChangesView.exe». Возможно, потребуется подтвердить запуск приложения в окне контроля учетных записей.

После запуска выберите, за какой папкой хотите наблюдать, и нажмите «OK». После этого утилита начнет следить за папкой и всеми ее подпапками в соответствии с заданными параметрами. Например, мы решили понаблюдать за папкой «Downloads». Для этого мы указали ее адрес, как показано на скриншоте ниже.

После выбора папки можно изменить параметры мониторинга, показанные на скриншоте выше. Мы решили ничего не менять, но вы можете потом поэкспериментировать с настройками самостоятельно. И не волнуйтесь: настройки операционной системы от этого никак не изменятся, поэтому можно не бояться что-нибудь напортить.

Итак, мониторинг настроен, теперь можно изменить пару-тройку файлов и посмотреть, как это отразится в приложении. Мы, например, удалили из папки «Downloads» один файл, создали новую подпапку и переместили в нее существующие файлы.

Вот что FCV сообщает нам об этих изменениях:

• Файл «Paragon Partition Ma…» удален.
• Папка «New Folder» создана и изменена (изменение – это переименование папки).
• Файл «VirtualBox-4.3.20-9699…» удален и создан. Другими словами, он был перемещен – то есть, удален из оригинальной папки «Downloads» и добавлен в папку «New Folder».
• Файл «Oracle_VM_VirtualBox…» удален и создан – тоже по причине перемещения в другую папку.

Информация о файлах

Утилита показывает не просто сведения об операциях, но и исчерпывающую информацию об измененных файлах в папке (все столбцы можно посмотреть, прокручивая окно мониторинга вправо). Вот какие данные сообщает приложение:

1. Имя файла (Filename).
2. Количество изменений (Modified Count).
3. Количество созданий ( Created Count).
4. Количество удалений (Deleted Count).
5. Полный путь к файлу (Full Path).
6. Расширение измененного файла (Extension).
7. Владелец файла (File Owner).
8. Время первого изменения (First Time Event).
9. Время последнего изменения (Last Time Event). Эти два столбца пригодятся в том случае, когда нужно узнать, сколько времени было потрачено, например, на редактирование документа Word.
10. Размер файла (File Size).
11. Время изменения (Modified Time). Этот столбец немного отличается от №№8 и 9: здесь указано время переименования или изменения различных атрибутов файла, а не время его открытия и сохранения.
12. Время создания (Created Time).
13. Атрибуты (Attributes).

Для удобства можно нажать на любом файле правой кнопкой мыши и выбрать пункт «Properties» («Свойства») – тогда всю эту информацию можно будет посмотреть в одном окне. Только не перепутайте с пунктом «File Properties» («Свойства файла»).

Теперь вы знаете, как наблюдать за изменениями файлов, и впредь вам будет легко узнать, что делали посторонние за вашим компьютером. Кроме того, таким способом можно отследить любые изменения, внесенные вредоносным программным обеспечением, и удалить заразу. В общем, экспериментируйте с настройками и смотрите, что из этого получится. А если программа вам надоест, просто удалите папку «FCV» – никакой деинсталляции не требуется.

DaemonFS — Мониторинг изменений файлов

Инструмент для контроля изменений файлов на жестком диске в режиме реального времени.

Особенности:

  • Кросс-платформенность, работает на Windows, Mac OS X, Linux;
  • Мониторинг изменений в скрытых файлах и папках;
  • Рекурсивная индексация файлов;
  • Значок в области уведомлений;
  • Простой и небольшой.

При первом запуске нужно выбрать файлы, которые необходимо контролировать.

Читайте также:  Windows explorer прекратила работа

Add file — Добавить файл в список для мониторинга.
Add directory — Добавить папку в список для мониторинга.
Reset — Очистить список.

После того, как мы указали файлы и папки, изменения которых необходимо контролировать, нажимаем Start. Если указаны большие каталоги, то инструмент будет некоторое время индексировать их содержимое. Стоит дождаться завершения операции индексирования файлов. После завершения индексации содержимого папок и отдельных файлов он начнет отслеживать изменения в них. При обнаружении изменений в одном из указанных для контроля файлах или папках появится всплывающее уведомление и соответствующая запись в основном окне программы.

Если к уже имеющемуся списку необходимо добавить еще некоторое количество файлов, то необходимо в основном окне программы нажать Stop, чтобы приостановить мониторинг изменений в этих файлах, и нажать Back, для возврата к списку файлов для контроля. Также как и прежде, добавляем необходимые файлы и каталоги и нажимаем Start.

Язык: Английский
Лицензия:
GNU GPL v3

Протестировано на ОС: Windows 7 x64, Windows 10 x64

Внимание, резервная копия обновляется очень редко , так как нужна на случай удаления дистрибутива с официального сайта.

Как отследить изменения файлов в папке

Мало кто знает о том что можно отследить все изменения как файлов та и папок, удаление, создание, изменение, переименование и т.д. Можно даже узнать кто из пользователь это делал. Вариантов с помощью которых можно реализовать эту задачу очень много, от использования стандартных функций до специализированного программного обеспечения. Настроить все это дела средствами Windows достаточно сложно, более менее профессиональный софт платный. Я же вам хочу рассказать о золотой середине, которой сможет пользоваться даже простой пользователь. Это небольшая бесплатная программа которая поможет отследить изменения файлов в папке.

Как узнать кто когда и какие файлы и папки изменял

Называется эта программа FolderChangesView, ссылку на её скачивание найдете в кончен статьи. Программа бесплатная с простым и понятным интерфейсом. Правда есть один нюанс она не русифицирована. Но думаю сейчас это уже не проблема.

Запускаем программу и копируем путь до отслеживаемой папки с файлами. Отмечаем первый пункт «Monitor all subfolders inder the specified folders».

Теперь попробуем создать новый документ.

Программу тут же заменить новый файл и отобразит его в истории изменений. Вы сможете узнать, имя нового файла, кто создал (при учете если у вас каждый пользователь заходит под своей учетной записью), время и дату.

Дальше попробуем что нибудь удалить.

Эти изменения так же отразятся в программе и вы сможете узнать кто, когда и какой файл удалил.

Если попробовать изменить какой нибудь файл например, текстовый документ.

Вот таким образом можно отслеживать изменения в файлах и папках. Программа подойдет для локального использования. Для отслеживания изменений скажем на сетевых ресурсах лучше использовать что посерьезней.

Отслеживание изменений файловой системы в фоновом режиме Track file system changes in the background

Важные API Important APIs

Класс StorageLibraryChangeTracker позволяет приложениям отслеживать изменения в файлах и папках, когда пользователи перемещают их в системе. The StorageLibraryChangeTracker class allows apps to track changes in files and folders as users move them around the system. С помощью класса StorageLibraryChangeTracker приложение может отслеживать: Using the StorageLibraryChangeTracker class, an app can track:

  • операции с файлами, включая добавление, удаление и изменение; File operations including add, delete, modify.
  • операции с папками, такие как переименование и удаление; Folder operations such as renames and deletes.
  • перемещение файлов и папок на диске. Files and folders moving on the drive.

В этом руководстве описывается модель программирования для работы со средством отслеживания изменений, приводятся примеры кода и рассматриваются различные типы операций с файлами, которые отслеживаются с помощью StorageLibraryChangeTracker. Use this guide to learn the programing model for working with the change tracker, view some sample code, and understand the different types of file operations that are tracked by StorageLibraryChangeTracker.

StorageLibraryChangeTracker подходит для библиотек пользователей или для любой папки на локальном компьютере. StorageLibraryChangeTracker works for user libraries, or for any folder on the local machine. Поддерживаются дополнительные и съемные диски, но не поддерживаются диски NAS или сетевые диски. This includes secondary drives or removable drives but does not include NAS drives or network drives.

Использование средства отслеживания изменений Using the change tracker

Средство отслеживания изменений реализуется в системе как кольцевой буфер, содержащий последние N операций файловой системы. The change tracker is implemented on system as a circular buffer storing the last N file system operations. Приложения могут считывать изменения из буфера, а затем обрабатывать их и использовать для каких-либо своих функций. Apps are able to read the changes off of the buffer and then process them into their own experiences. После того, как приложение завершит обработку изменений, оно помечает их как обработанные и больше никогда не увидит их снова. Once the app is finished with the changes it marks the changes as processed and will never see them again.

Чтобы использовать средство отслеживания изменений для папки, выполните следующие действия. To use the change tracker on a folder, follow these steps:

  1. Включите отслеживание изменений для папки. Enable change tracking for the folder.
  2. Дождитесь изменений. Wait for changes.
  3. Выполните чтение изменений. Read changes.
  4. Примите изменения. Accept changes.
Читайте также:  Как снять копию диска с windows

В следующих разделах подробно рассматривается каждый из этих шагов и приводятся примеры кода. The next sections walk through each of the steps with some code examples. Полный пример кода приведен в конце этой статьи. The complete code sample is provided at the end of the article.

Включение средства отслеживания изменений Enable the change tracker

Первое, что приложению требуется сделать, — сообщить системе, что его интересует отслеживание изменений в определенной библиотеке. The first thing that the app needs to do is to tell the system that it is interested in change tracking a given library. Для этого вызывается метод Enable средства отслеживания изменений для выбранной библиотеки. It does this by calling the Enable method on the change tracker for the library of interest.

Несколько важных замечаний: A few important notes:

  • Убедитесь, что у приложения в манифесте есть разрешение для соответствующей библиотеки, прежде чем создавать объект StorageLibrary. Make sure your app has permission to the correct library in the manifest before creating the StorageLibrary object. Дополнительные сведения см. в разделе Разрешения на доступ к файлам. See File Access Permissions for more details.
  • Метод Enable является потокобезопасным и не приведет к сбросу указателя. Его можно вызывать сколько угодно раз (мы рассмотрим его подробнее позже). Enable is thread safe, will not reset your pointer, and can be called as many times as you like (more on this later).

Ожидание изменений Wait for changes

После инициализации средства отслеживания изменений оно начнет записывать все операции в библиотеке, даже когда приложение не выполняется. After the change tracker is initialized, it will begin to record all of the operations that occur within a library, even while the app isn’t running. Приложения можно зарегистрировать, чтобы они активировались каждый раз, когда происходит изменение. Для этого их нужно зарегистрировать для события StorageLibraryChangedTrigger. Apps can register to be activated any time there is a change by registering for the StorageLibraryChangedTrigger event.

Чтение изменений Read the changes

Приложение может выполнить опрос для проверки наличия изменений в средстве отслеживания изменений и получить список изменений со времени последней проверки. The app can then poll for changes from the change tracker and receive a list of the changes since the last time it checked. В приведенном ниже коде показано, как получить список изменений из средства отслеживания изменений. The code below shows how to get a list of changes from the change tracker.

После этого приложение отвечает за обработку изменений для использования в собственных функциях или базе данных, если это необходимо. The app is then responsible for processing the changes into its own experience or database as needed.

Второй вызов для включения предназначен для защиты от состязания в случае, если пользователь добавляет другую папку в библиотеку, пока приложение считывает изменения. The second call to enable is to defend against a race condition if the user adds another folder to the library while your app is reading changes. Если пользователь изменяет папки в своей библиотеке, то без дополнительного вызова Enable код завершится ошибкой ecSearchFolderScopeViolation (0x80070490). Without the extra call to Enable the code will fail with ecSearchFolderScopeViolation (0x80070490) if the user is changing the folders in their library

Принятие изменений Accept the changes

Когда приложение завершит обработку изменений, оно должно указать системе больше не показывать эти изменения, вызвав метод AcceptChangesAsync. After the app is done processing the changes, it should tell the system to never show those changes again by calling the AcceptChangesAsync method.

Теперь при чтении данных из средства отслеживания изменений приложение будет получать только новые изменения. The app will now only receive new changes when reading the change tracker in the future.

  • Если изменения произошли между вызовом ReadBatchAsync и AcceptChangesAsync, указатель будет перемещен на последнее изменение, считанное приложением. If changes have happened between calling ReadBatchAsync and AcceptChangesAsync, the pointer will be only be advanced to the most recent change the app has seen. Остальные изменения все еще будут доступны, когда оно снова вызовет метод ReadBatchAsync. Those other changes will still be available the next time it calls ReadBatchAsync.
  • Если не принять изменения, система вернет тот же набор изменений в следующий раз, когда приложение вызовет ReadBatchAsync. Not accepting the changes will cause the system to return the same set of changes the next time the app calls ReadBatchAsync.

Важные замечания Important things to remember

При использовании средства отслеживания изменений следует помнить несколько моментов, чтобы все работало правильно. When using the change tracker, there are a few things that you should keep in mind to make sure that everything is working correctly.

Переполнение буфера Buffer overruns

Несмотря на то, что мы пытаемся резервировать достаточно места в средстве отслеживания изменений для хранения всех операций в системе, пока ваше приложение их не считает, очень просто представить себе ситуацию, когда приложение не считало изменения перед тем, как циклический буфер был перезаписан. Although we try to reserve enough space in the change tracker to hold all the operations happening on the system until your app can read them, it is very easy to imagine a scenario where the app doesn’t read the changes before the circular buffer overwrites itself. Особенно в том случае, если пользователь восстанавливает данные из резервной копии или синхронизирует большую коллекцию изображений из телефона с камерой. Especially if the user is restoring data from a backup or syncing a large collection of pictures from their camera phone.

Читайте также:  Аналог quik для mac os

В этом случае ReadBatchAsync вернет код ошибки StorageLibraryChangeType.ChangeTrackingLost. In this case, ReadBatchAsync will return the error code StorageLibraryChangeType.ChangeTrackingLost. Если приложение получило этот код ошибки, это означает следующее:. If your app receives this error code, it means a couple things:

  • Буфер был перезаписан после последнего обращения приложения к нему. The buffer has overwritten itself since the last time you looked at it. Оптимальным решением является выполнить обход контента библиотеки, так как любая информация из средства отслеживания будет неполной. The best course of action is to recrawl the library, because any information from the tracker will be incomplete.
  • Средство отслеживания изменений не вернет какие-либо дополнительные изменения, пока не будет вызван метод Reset. The change tracker will not return any more changes until you call Reset. После того, как приложение вызовет сброс, указатель переместится на последнее изменение, и отслеживание возобновится в обычном режиме. After the app calls reset, the pointer will be moved to the most recent change and tracking will resume normally.

Такие ситуации должны возникать редко, но в сценариях, когда пользователь перемещает много файлов на диске, мы не хотим, чтобы данные средства отслеживания изменений разрослись и заняли слишком много места на диске. It should be rare to get these cases, but in scenarios where the user is moving a large number of files around on their disk we don’t want the change tracker to balloon and take up too much storage. Это позволит приложениям реагировать на большое число операций файловой системы, не нарушая работу пользователей в Windows. This should allow apps to react to massive file system operations while not damaging the customer experience in Windows.

Изменения в StorageLibrary Changes to a StorageLibrary

Класс StorageLibrary существует в виде виртуальной группы корневых папок, содержащих другие папки. The StorageLibrary class exists as a virtual group of root folders that contain other folders. Чтобы согласовать это со средством отслеживания изменений файловой системы, мы добавили следующие возможности выбора. To reconcile this with a file system change tracker, we made the following choices:

  • Любые изменения нисходящих элементов корневых папок библиотеки будут представлены в средстве отслеживания изменений. Any changes to descendent of the root library folders will be represented in the change tracker. Корневые папки библиотеки можно найти с помощью свойства Folders. The root library folders can be found using the Folders property.
  • Добавление или удаление корневых папок в StorageLibrary (с помощью RequestAddFolderAsync и RequestRemoveFolderAsync) не приводит к созданию записи в средстве отслеживания изменений. Adding or removing root folders from a StorageLibrary (through RequestAddFolderAsync and RequestRemoveFolderAsync) will not create an entry in the change tracker. Эти изменения можно отследить с помощью события DefinitionChanged или путем перечисления корневых папок в библиотеке с использованием свойства Folders. These changes can be tracked through the DefinitionChanged event or by enumerating the root folders in the library using the Folders property.
  • Если папка с содержимым добавляется в библиотеку, не будет создаваться уведомление об изменении или записи в средстве отслеживания изменений. If a folder with content already in it is added to the library, there will not be a change notification or change tracker entries generated. Все последующие изменения нисходящих элементов этой папки будут вызывать создание уведомлений и записей в средстве отслеживания изменений. Any subsequent changes to the descendants of that folder will generate notifications and change tracker entries.

Вызов метода Enable Calling the Enable method

Приложения должны вызывать метод Enable сразу после начала отслеживания файловой системы и перед каждым перечислением изменений. Apps should call Enable as soon as they start tracking the file system and before every enumeration of the changes. Это гарантирует, что все изменения будут записаны средством отслеживания изменений. This will ensure that all changes will be captured by the change tracker.

Подведем итог Putting it together

Ниже приведен весь код, который используется для регистрации для получения изменений в библиотеке видео и начала получения изменений из средства отслеживания изменений. Here is all the code that is used to register for the changes from the video library and start pulling the changes from the change tracker.

Оцените статью