gpt4 book ai didi

c# - 特定文件类型的文件系统过滤器驱动程序

转载 作者:可可西里 更新时间:2023-11-01 14:03:31 30 4
gpt4 key购买 nike

我需要检测何时在整个 Windows 文件系统中以任何方式访问两种文件类型中的任何一种。

据我所知,在不导致操作系统严重减速的情况下执行此操作的唯一方法是创建文件系统过滤器驱动程序?

基本上我需要做的就是复制所有打开的 doc(x) 文件和 pdf 文件。我决定采用这种方法,因为要么在 C# 中使用文件监视器,要么对整个驱动器无效。

我的问题有两个,有没有更简单的方法,其次,我如何在访问每个 doc(x)/pdf 文件时简单地复制一份?

该解决方案需要可以使用我们当前生成的包进行部署。

更新

我将对文件系统观察器进行基准测试,在与这里的人讨论后我认为它可能是可以接受的,我担心的是我需要监视将发生下载的公共(public)用户目录(所以“C:\Users\SomeUser*”以及 Outlook 临时文件夹。

最佳答案

您需要创建一个文件系统监视器。这是一个代码示例,它将监视对 docx 文件的更改。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Security.Permissions;

namespace filewatchtest
{
class Program
{
static void Main(string[] args)
{
Run();
}

[PermissionSet(SecurityAction.Demand, Name="FullTrust")]
public static void Run()
{
string[] args = System.Environment.GetCommandLineArgs();

// if directory not specified then end program
if (args.Length != 2)
{
Console.WriteLine("Usage: filewatchtest.exe directory");
return;
}

// create a new fileSystemWatcher and set its properties
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = args[1];

// set the notify filters
watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName;

// set the file extension filter
watcher.Filter = "*.docx";

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

// bengin watching
watcher.EnableRaisingEvents = true;

// wait for the user to quit the program
Console.WriteLine("Plress q to quit the program");
while (Console.Read()!='q');


}

static void OnRenamed(object sender, RenamedEventArgs e)
{
Console.WriteLine("File: {0} renamed to {1}", e.OldFullPath, e.FullPath);
}

static void OnChanged(object sender, FileSystemEventArgs e)
{
Console.WriteLine("File:" + e.FullPath + " " + e.ChangeType);
}



}
}

关于c# - 特定文件类型的文件系统过滤器驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28098609/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com