Контроль модификации каталога

for(key in p) {
  alert( p[key] );
}

Примечание: вы можете делать это по массивам, но вы будете перебирать и length и другие свойства.

6
задан Jørgen R 19 December 2014 в 22:48
поделиться

4 ответа

Хм... интересный вопрос. Первоначально я указал бы на Вас на класс FileSystemWatcher. Если бы Вы собираетесь иметь его работа, однако, по пользовательскому запросу, то казалось бы, что Вы, возможно, должны были бы сохранить от информации о каталоге первоначально и затем сравнить каждый раз пользовательские запросы. Я, вероятно, пошел бы с FileSystemWatcher и просто сохранил бы от Ваших результатов во всяком случае.

1
ответ дан 10 December 2019 в 00:46
поделиться

Используйте объект FileSystemWatcher. Вот некоторый код, чтобы сделать то, что Вы ищете.

    // Declares the FileSystemWatcher object
    FileSystemWatcher watcher = new FileSystemWatcher(); 

    // We have to specify the path which has to monitor

     watcher.Path = @"\\somefilepath";     

    // This property specifies which are the events to be monitored
     watcher.NotifyFilter = NotifyFilters.LastAccess |
       NotifyFilters.LastWrite | NotifyFilters.FileName | notifyFilters.DirectoryName; 
    watcher.Filter = "*.*"; // Only watch text files.

    // Add event handlers for specific change events...

    watcher.Changed += new FileSystemEventHandler(OnChanged);
    watcher.Created += new FileSystemEventHandler(OnChanged);
    watcher.Deleted += new FileSystemEventHandler(OnChanged);
    watcher.Renamed += new RenamedEventHandler(OnRenamed);
    // Begin watching.
    watcher.EnableRaisingEvents = true;


    // Define the event handlers.
    private static void OnChanged(object source, FileSystemEventArgs e)
    {
    // Specify what is done when a file is changed, created, or deleted.
    }

    private static void OnRenamed(object source, RenamedEventArgs e)
    {
    // Specify what is done when a file is renamed.
    }
6
ответ дан 10 December 2019 в 00:46
поделиться

Я думаю, что Вы хотите, обеспечивается классом FileSystemWatcher.

Это учебное руководство описывает, как использовать его для контроля каталога для изменений в простом сервисе окон; Как реализовать простую filewatcher службу Windows в C#

2
ответ дан 10 December 2019 в 00:46
поделиться

Если Вам только нужен он для проверки, когда пользователь спрашивает скорее затем все время, не используйте FileSystemWatcher. Особенно, если это - совместно используемый ресурс - последняя вещь, Вы хотите, 50 клиентских машин, наблюдая тот же общий каталог.

Это - вероятно, просто опечатка, но Вы не должны смотреть на время доступа к файлу, Вы хотите посмотреть на время изменения файла для взятия изменений. Даже это не надежно.

То, что я сделал бы, реализовать своего рода функцию контрольной суммы в дату файла и размер байта или другие свойства файловой системы. Тем путем я не искал бы изменения в полном файле - только свойства его, и я могу сделать это по запросу, вместо того, чтобы пытаться содержать соединение с удаленным ресурсом для контроля его.

Более тяжелое решение состояло бы в том, чтобы сделать это наоборот и установить сервис на машину, размещающую общий диск, который мог контролировать файлы и сделать примечание изменений. Затем Вы могли запросить сервис вместо того, чтобы коснуться файлов вообще - но это - вероятно, излишество.

1
ответ дан 10 December 2019 в 00:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: