C # help - class FileSystemWatcher

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:

In the current context, the name 'e' does not exist

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 + "");
        }
    }
}
+3
source share
2 answers

erefers to the parameter EventArgsof 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);
    }

at

static void FileWatcher_Renamed(object sender, RenamedEventArgs e)

he should work.

+2
source

From what I see in the code, you have the code for the Rename event inside the main method that does not contain a FileSystemEventArgs object (called "e.")

I think that to solve this problem you should change the body of "FileWatcher_Renamed" to the used block.

0
source

All Articles