Как обнаружить новые или измененные файлы - PullRequest
1 голос
/ 06 января 2009

Я обнаружил, что есть два способа приблизиться к нему: ReadDirectoryChangesW и FindFirstChangeNotification .

Я хочу знать, в чем разница между ними, производительностью или иным образом?

1 Ответ

5 голосов
/ 06 января 2009

Это помечено для Winapi, но я все равно делаю это с .net.

Для этого вы можете использовать класс FileSystemWatcher из System.IO.

static void Main(string[] args)
{
    FileSystemWatcher fsw = new FileSystemWatcher("C:\\");
    fsw.Changed += new FileSystemEventHandler(fsw_Changed);
    fsw.Created += new FileSystemEventHandler(fsw_Created);
    fsw.Deleted += new FileSystemEventHandler(fsw_Deleted);
    fsw.EnableRaisingEvents = true;
    fsw.IncludeSubdirectories = true;
    fsw.Renamed += new RenamedEventHandler(fsw_Renamed);

    Console.Read();
}

static void fsw_Renamed(object sender, RenamedEventArgs e)
{
    Console.WriteLine("{0} was changed to {1}", e.OldName, e.Name);
}

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

static void fsw_Created(object sender, FileSystemEventArgs e)
{
    Console.WriteLine("{0} was created", e.Name);
}

static void fsw_Changed(object sender, FileSystemEventArgs e)
{
    Console.WriteLine("{0} was changed", e.Name);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...