如何记录文件夹中文件名和文件内容的更改

时间:2014-08-13 11:43:13

标签: c# database winforms visual-studio-2010 visual-studio

我最近写了一个winform来记录文件夹中文件数量的变化,并在两个文件夹中的文件数不相同时显示一条消息。 所以我希望通过以这样的方式添加代码来改进我的程序。当文件名和内容发生变化时,我是否应该通知任何方式。

这意味着两个文件夹中的文件相同的总数。但是,如果我将文件名更改为其他文件名,或者文件名中的内容已被删除或添加。在这种情况下我能做什么。

任何想法。
注意我不希望任何内容上传到软件,软件应该自动执行所有操作...

非常感谢...

1 个答案:

答案 0 :(得分:1)

当文件夹中存在文件时,您可以使用FileSystemWatcher接收事件。

...

FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = // your path to be watched
watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName;
// Only watch text files for example
watcher.Filter = "*.txt";

// Add event handlers.
watcher.Changed += new FileSystemEventHandler(OnChanged);
watcher.Created += new FileSystemEventHandler(OnChanged);
watcher.Deleted += new FileSystemEventHandler(OnChanged);
watcher.Renamed += new RenamedEventHandler(OnRenamed);

...

// 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);
}