C#怎么实时获取本地用户修改了哪个文件夹的内容

C#怎么实时获取本地用户修改了哪个文件夹的内容,程序怎么写,不会搞

看看FileSystemWatcher类怎么用的

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7691790
  • 你也可以参考下这篇文章:从C#开始的面向对象编程经典自学教程
  • 除此之外, 这篇博客: C#_工程实践笔记_用刚学的C#语言做一个随机抽题的小程序中的 遇到的问题 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 有趣的是我在设置帮助与版本这个按键的时候卡了很久,因为我以为窗口设计器只能用来设计主页面窗口,像这种按键弹出的窗口需要手动来设计,不能所见即所得了,然后妄图自己手动敲出一个窗口和上面的文本框的属性,然而,我发现可以在工程内新建一个窗口,然后通过调用show出来,不得不说VisualStudio的IDE还是厉害

    新建窗体
    帮助与版本
    在设计消息窗口时发现当信息累积到文本框放不下时,设置的滚动条并不会自动的滑倒最下端,这样也会对用户造成不便,这里借鉴了网上查到的一种方法,也是很巧妙地通过事件触发就解决了这个问题

    		/// <summary>
            /// 实现文本框滚动条自动滚动,文本框的事件触发
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void Test_MessageShow_TextChanged(object sender, EventArgs e)
            {
                Test_MessageShow.SelectionStart = Test_MessageShow.Text.Length;
                Test_MessageShow.ScrollToCaret();
            }
    

    在最后生成.exe应用程序后,我把它兴高采烈地同题库复制出来,看看作为收到作品的用户能不能正常使用呢,一运行,完了,程序没反应,窗口都没弹出来,查一下原因,结果是因为我把文件操作的相关类和方法封装在了类库里,一个dll文件,只迁移应用程序而缺少配置文件肯定行不通啊,我把原来和它在同一目录下dll配置文件也拷贝出来,运行正常。那这也不行,用户像我一样忘了这个dll文件,也以为只要exe就能运行怎么办,一看程序没有响应,一头雾水不知道问题出在哪,毕竟用户不像开发者那么清除。不行,当程序发生问题时应该给出提示,这样在程序一开始就添加了异常处理

    			try
                {
                    Application.EnableVisualStyles();
                    Application.SetCompatibleTextRenderingDefault(false);
                    Application.Run(new MianForm());
                }
                catch (Exception)
                {
    
                    MessageBox.Show("程序未能正常运行,可能是缺少必要的配置文件“ClassFileOperation.dll”所导致的", "严重错误",MessageBoxButtons.OK,MessageBoxIcon.Error);
                }           
    

    错误警告
    这样整个程序就算写好了

    最终程序
    实验效果还不错

    关于文件操作的博文
    C#_语言学习笔记_文件操作

  • 您还可以看一下 武占文老师的C#软件安全控制实例视频教程课程中的 利用图片加密文件小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    在C#中,可以使用FileSystemWatcher类来实现实时监控文件夹的变化。FileSystemWatcher类提供了一组事件,用于监听文件或文件夹的创建、修改和删除等操作。

    以下是一种使用FileSystemWatcher类的示例代码:

    using System;
    using System.IO;
    
    class Program
    {
        static void Main()
        {
            // 创建一个新的 FileSystemWatcher 对象
            FileSystemWatcher watcher = new FileSystemWatcher();
    
            // 设置要监视的文件夹路径
            watcher.Path = "路径";
    
            // 设置要监视的文件类型(可选)
            watcher.Filter = "*.txt";
    
            // 设置要监视子文件夹中的文件变化(可选)
            watcher.IncludeSubdirectories = true;
    
            // 设置监视的事件类型
            watcher.NotifyFilter = NotifyFilters.FileName | NotifyFilters.LastWrite | NotifyFilters.CreationTime | NotifyFilters.DirectoryName;
    
            // 添加事件处理程序
            watcher.Created += OnFileOrFolderChanged;
            watcher.Changed += OnFileOrFolderChanged;
            watcher.Deleted += OnFileOrFolderChanged;
    
            // 启动监视
            watcher.EnableRaisingEvents = true;
    
            // 等待用户退出程序
            Console.WriteLine("Press 'q' to quit the program.");
            while (Console.Read() != 'q') ;
    
            // 停止监视
            watcher.EnableRaisingEvents = false;
        }
    
        static void OnFileOrFolderChanged(object source, FileSystemEventArgs e)
        {
            // 文件或文件夹发生变化时的响应逻辑
            Console.WriteLine("Path: " + e.FullPath);
            Console.WriteLine("Change Type: " + e.ChangeType);
            Console.WriteLine();
        }
    }
    

    在以上示例中,通过创建FileSystemWatcher对象并设置相关属性,然后添加对应的事件处理程序来处理文件或文件夹的变化。当有文件或文件夹创建、修改或删除时,事件处理程序OnFileOrFolderChanged将被调用,并通过FileSystemEventArgs参数获取相关信息。

    注意: - 需要根据实际情况设置watcher.Path属性来指定要监视的文件夹路径。 - 可以根据需要设置其他属性,例如过滤特定类型的文件、监视子文件夹中的变化等。 - 在事件处理程序中,可以根据需要进行相应的处理逻辑。

    希望以上信息对解决问题有所帮助。如果还有其他疑问,请随时提问。