Windows下监控文件夹或文件变化

API函数

Windows提供了监控文件夹或文件变化的API, 如下:
FindFirstChangeNotification
FindCloseChangeNotification
FindNextChangeNotification
ReadDirectoryChangesW

具体使用方式,查看msdn或网上找资料
也可参看博文:https://www.cnblogs.com/pjl1119/articles/ReadDirectoryChanges.html

监控文件夹变化(新建、删除、重命名等)例子

#include <windows.h>
#include <iostream>
#include <tchar.h>

int main(int argc, char** argv )
{
	HANDLE hWatchDir = ::FindFirstChangeNotification(_T("F:\\testaaa"),
		TRUE, FILE_NOTIFY_CHANGE_DIR_NAME);
	if (hWatchDir == INVALID_HANDLE_VALUE)
	{
		std::cerr << "invalid watch handle with error " 
			<< ::GetLastError() << std::endl;
		return 1;
	}

	while (TRUE)
	{
		std::cout << "waiting dir changing..." << std::endl;
		if (WAIT_OBJECT_0 == ::WaitForSingleObject(hWatchDir, INFINITE))
		{
			std::cout << "dir or sub dir changed" << std::endl;
		}
		else
		{
			std::cerr << "wait occur error " << ::GetLastError() << std::endl;
			break;
		}

		if (!::FindNextChangeNotification(hWatchDir))
		{
			std::cerr << "find next change failed with error " << ::GetLastError()
				<< std::endl;
			break;
		}
	}

	::FindCloseChangeNotification(hWatchDir);
	hWatchDir = NULL;

	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可曾遇到以下问题:员工辞职了,把公司的客户资料也拷走了;设计图纸落到了竞争对手手中;市场推广计划被个别员工泄露了……你发现在这个信息安全变得越来越重要的时代,你却对企业局域网内的信息安全束手无策。最痛苦的是,作为行政部或IT部的管理者,老板将一切责任归到你的头上……. 绿盾信息安全管理软件,可以帮您彻底解决以上问题。 软件名称:绿盾信息安全管理软件 版本信息:V1.10 大小:11.75MB 支持语言:中文版本/英文版本 适用系统:Windows 2000/XP/2003 开发商:厦门天锐科技有限公司 官方下载:www.ldsafe.com 功能简介: 一、文件加密模块 通过绿盾信息安全管理软件,系统在不改变用户原有工作流程和文件使用习惯的前提下,对需要保护的文件进行强制加密保护,并对文件的使用进行全程监控,即文件只能在企业局域网内部查看,离开局域网则为密文,这样有效防止了被动和主动泄密,消除内部安全隐患于无形之中。 1、系统方案:在服务器上(其他客户机可以和它通信的电脑)安装绿盾服务端,然后在文件服务器和需要使用共享文件的电脑上安装绿盾终端。在绿盾服务端上创建若干终端帐户,绿盾终端使用这些帐户登入。只有安装了绿盾终端的电脑在登入帐户后才可以使用或查看加密的文件,离开局域网后需要使用或查看加密文件需要得到服务端的解密或者授权才可。安装绿盾终端用户的文件在创建、存储、应用、传输等环节中均以加密形式存在,可以杜绝黑客工具的窃取和监听。 2、文件外发方案:如有内部文件需要外发,可把这些文件发送到只解密不加密的绿盾终端(通过设置登入终端的帐户类型实现),通过这些终端电脑将这些文件另存,另存后的文件即以明文的形式存在并可根据实际需要发送给企业外部客户。 3、离线方案:如企业内部员工需要带笔记本电脑脱离局域网(出差或在家查看加密文档),可以使用绿盾的离线策略。离线策略需要向管理员申请,获得批准后导入即可。且离线策略可以灵活设定离线使用天数,这样在方便员工外部办公的同时也有效地保证了文档的安全。 二、内网安全管理模块 1、实时操作日志 :实时详细地记录所有终端的操作日志。包括终端上窗口标题的变换、程序的启动关闭、浏览的网址、收发的邮件标题、创建删除文件等; 2、屏幕快照、屏幕追踪、屏幕回放  3、应用程序使用记录、使用限制、使用统计: 详细记录各个应用程序的开启关闭的时间,运行时间,活动时间等信息; 提供应用程序白名单和黑名单功能,方便地限制员工可以运行哪些程序,不能运行哪些程序; 4、文件及目录操作记录:详细记录文件创建、重命名、删除的情况;详细记录文件夹(目录)创建、重命名、删除等情况。 5、打印机操作记录:记录员工的打印机使用情况,包括打印的文档名、页数、打印时间等。 6、硬件使用限制: 限制使用USB设备、USB存储设备、光驱、软驱的使用。支持移动磁盘、光盘刻录文件操作的监视; 7、软硬件清单、变化记:远程列出员工计算机的软件和硬件清单及配置变化的记录; 8、YAHOO通/贸易通/新浪UC/ICQ/AOL/E话通/SKYPE/MSN专业版/TM/QQ等聊天内容记录监视 9、报警功能 10、Arp防火墙功能: 可进行IP、MAC 绑定,防止ARP攻击 。 11、远程控制功能: 重启、关闭计算机;注销WINDOWS;发送信息 。 12、资产管理功能 由于软件大于10MB,无法全部上传,只能上传一部分,请大家见谅。如果要下载的话,请到官方网站www.ldsafe.com下载。
可以使用C#提供的FileSystemWatcher类来实现监控文件夹和里面文件变化。以下是一个简单的示例代码: ```csharp using System; using System.IO; class Program { static void Main(string[] args) { // 创建一个新的FileSystemWatcher对象 FileSystemWatcher watcher = new FileSystemWatcher(); // 设置要监控文件夹路径 watcher.Path = @"C:\myfolder"; // 监控所有类型的文件 watcher.Filter = "*.*"; // 监控文件变化的类型 watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName; // 添加事件处理程序 watcher.Changed += new FileSystemEventHandler(OnChanged); watcher.Created += new FileSystemEventHandler(OnChanged); watcher.Deleted += new FileSystemEventHandler(OnChanged); watcher.Renamed += new RenamedEventHandler(OnRenamed); // 启动监控 watcher.EnableRaisingEvents = true; Console.WriteLine("Press any key to stop monitoring..."); Console.ReadKey(); } // 处理文件变化事件 private static void OnChanged(object source, FileSystemEventArgs e) { Console.WriteLine($"File: {e.FullPath} {e.ChangeType}"); } // 处理文件重命名事件 private static void OnRenamed(object source, RenamedEventArgs e) { Console.WriteLine($"File: {e.OldFullPath} renamed to {e.FullPath}"); } } ``` 这个示例代码会监控C:\myfolder文件夹中的所有文件变化,并在控制台输出变化的信息。你可以根据需要修改要监控文件夹路径、要监控文件类型和要监控变化类型,并根据需要添加其他事件处理程序

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值