0

我需要创建一个应用程序,当用户将文件复制到特定文件夹时,我的应用程序将被激活并且文件将被更改,此外,当用户读回文件夹中的任何文件时,也会对文件。

可能吗?

我将为此使用.net。

我认为文件夹 C:\WINDOWS\assembly 是这样的吗?

任何帮助将不胜感激!谢谢!

4

4 回答 4

1

好吧,我相信您可以编写一个资源管理器扩展来执行此操作,但我所知道的更典型的方法是编写一个 Windows 服务,该服务使用 FileSystemWatcher 类监视相关目录来监视事件。然后该服务可以执行请求的操作(或生成可执行文件来执行此操作)。

我注意到的一个警告是,如果一次发生大量活动(从 .net 2.0 开始 - 尚未检查 3.5),有时文件观察程序可能会错过事件。

如果您使用该方法,请确保在收到更改通知时自己检查目录内容,而不是依赖文件观察程序告诉您的内容。我最终将 filewatcher 事件处理与不频繁的轮询结合起来,以确保我没有错过任何事情。

于 2008-11-28T17:26:43.420 回答
1

您可以使用使用 FileSystemWatcher 的服务检测用户将文件复制到文件夹中。当应用程序读取文件时更改文件的内容需要修补操作系统的病毒技术。像 rootkit 或文件系统过滤器驱动程序。我不建议考虑,在写入文件后更改文件。

c:\windows\assembly 包含 GAC。.NET 安装一个隐藏文件夹内容的外壳扩展处理程序。该文件夹在其他方面非常容易访问,shell 扩展处理程序仅在您使用 Windows 资源管理器查看该文件夹时才有效。Microsoft 强烈反对使用 .NET 编写 shell 扩展处理程序,该框架也完全缺乏支持。

于 2008-11-28T17:35:30.750 回答
0

您可以使用FileSystemWatcher监视更改。

您可以将组件配置为监视整个目录及其内容或给定目录中的特定文件或文件集。每当指定根目录中的文件或子目录被创建、删除、重命名或以其他方式更改时,FileSystemWatcher 组件都会引发事件。组件监控的更改类型包括文件或子目录的属性、大小、上次写入时间、上次访问时间和安全设置的更改。

于 2008-11-28T17:27:47.663 回答
0

您将在 .net 中获得的最接近的东西是 FileSystemWatcher 类,它将监视更改(创建和写入)但不监视读取活动。

网上和 MSDN 上有很多示例

http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx

于 2008-11-28T17:28:52.433 回答