Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C# Help - FileSystemWatcher Class

Tags:

c#

.net

windows

I have the following code, although I am trying to output:

fileWriter.Write(e.OldName + " was renamed to " + e.Name + Environment.NewLine);

Although I get the following error:

The name 'e' does not exist in the current context

My code is as follows:

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

namespace FileWatcherr
{
class Program
{    
    static void Main(string[] args)
    {
        string dirPath = "C:\\";
        FileSystemWatcher fileWatcher = new FileSystemWatcher(dirPath); 
        fileWatcher.IncludeSubdirectories = true;  
        fileWatcher.Filter = "*.exe";    
        // fileWatcher.Filter = "C:\\$Recycle.Bin";   
        //  fileWatcher.Changed += new FileSystemEventHandler(FileWatcher_Changed);   
        fileWatcher.Created += new FileSystemEventHandler(FileWatcher_Created);    
        //  fileWatcher.Deleted += new FileSystemEventHandler(FileWatcher_Deleted);  
        //  fileWatcher.Renamed += new RenamedEventHandler(FileWatcher_Renamed);    
        fileWatcher.EnableRaisingEvents = true;      

        // updated code
        using(StreamWriter fileWriter = new StreamWriter("test2.txt"))
        {
            var data = true;
            fileWriter.Write(e.OldName + " was renamed to " + e.Name + Environment.NewLine);
        }

        Console.ReadKey(); 
    }



        static void FileWatcher_Renamed(object sender, RenamedEventArgs e)
        {
            Console.WriteLine(e.OldName + " was renamed to " + e.Name);
        }

        static void FileWatcher_Deleted(object sender, FileSystemEventArgs e)
        {
            Console.WriteLine(e.Name + " was deleted");
        }

        static void FileWatcher_Created(object sender, FileSystemEventArgs e)
        {
            Console.WriteLine("C:\\" + e.Name);
        }

        static void FileWatcher_Changed(object sender, FileSystemEventArgs e)
        {
            Console.WriteLine(e.Name + "");
        }
    }
}
like image 717
Michael Avatar asked Dec 03 '25 06:12

Michael


1 Answers

The e refers to the EventArgs parameter of the event methods.

If you put this:

using(StreamWriter fileWriter = new StreamWriter("test2.txt"))
    {
        var data = true;
        fileWriter.Write(e.OldName + " was renamed to " + e.Name + Environment.NewLine);
    }

in the

static void FileWatcher_Renamed(object sender, RenamedEventArgs e)

method, it should work.

like image 154
Please treat your mods well. Avatar answered Dec 04 '25 19:12

Please treat your mods well.