6
6
655202015-12-31 11:03:42
Backup
65520, 2015-12-31 11:03:42

Program to monitor changes in a folder (Windows)?

Nobody met the program which would do the following? The program monitors the state of the folder in the background and puts the changed / deleted files into a separate folder, appending the date and time to their names. It is desirable that the folder structure is preserved and that it is possible to choose which types of files to monitor only for deletion, and which ones for changes.

Answer the question

In order to leave comments, you need to log in

3 answer(s)
T
Ti Fix, 2015-12-31
@Ti_Fix

using System;
using System.IO;
using System.Security.Permissions;
public class Watcher
{
public static void Main()
{
Run();
}
[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
public static void Run()
{
string[] args = System.Environment.GetCommandLineArgs();
// If a directory is not specified, exit program.
if (args.Length != 2)
{
// Display the proper way to call the program.
Console.WriteLine("Usage: Watcher.exe (directory)");
return;
}
// Create a new FileSystemWatcher and set its properties.
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = args[1];
/* Watch for changes in LastAccess and LastWrite times, and
the renaming of files or directories. */
watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
| NotifyFilters.FileName | NotifyFilters.DirectoryName;
// Only watch text files.
watcher.Filter = "*.*";
watcher.IncludeSubdirectories = true;
// Add event handlers. watcher.Created += new FileSystemEventHandler(OnChanged);
watcher.Changed += new FileSystemEventHandler(OnChanged);
watcher.Deleted += new FileSystemEventHandler(OnChanged);
watcher.Renamed += new RenamedEventHandler(OnRenamed);
// Begin watching.
watcher.EnableRaisingEvents = true;
// Wait for the user to quit the program.
Console.WriteLine("Press \'q\' to quit the sample.");
while (Console.Read() != 'q') ;
}
// Define the event handlers.
private static void OnChanged(object source, FileSystemEventArgs e)
{
// Specify what is done when a file is changed, created, or deleted.
Console.WriteLine("File: " + e.FullPath + " " + e.ChangeType);
}
private static void OnRenamed(object source, RenamedEventArgs e)
{
// Specify what is done when a file is renamed.
Console.WriteLine("File: {0} renamed to {1}", e.OldFullPath, e.FullPath);
}
}

O
oia, 2015-12-31
@oia

filemon technet.microsoft.com/en-us/sysinternals/bb896642

W
wyfinger, 2017-11-14
@wyfinger

https://github.com/wyfinger/BackupMachine

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question