2013-10-14 3 views
0

Обнаружен класс для обнаружения изменений каталога, но, похоже, работает только на Mac Desktop, а не на Windows.Изменение каталога AIR-detect Рабочий стол Windows

https://github.com/renz45/Actionscript/tree/master/Air/filesystem

Класс FileMonitor обнаруживает только изменения для отдельных файлов, я считаю.

Кто-нибудь знает способ обнаружения изменений каталога с помощью AIR на рабочем столе Windows?

+0

я не вижу ничего в главном классе, который не будет работать на Windows. Проверяет ли автор только его mac или вы получаете сообщение об ошибке? –

+0

нет ошибки, просто не работает :). Решил выбрать ручной опрос в Windows –

ответ

0

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

Для более надежного поведения вам нужно будет проверить время модификации всех файлов и подпапок.

Ниже приведен пример измененного метода DirectoryMonitor.traverseDirectoryTree, который также включает в себя файлы. Это не проверено полностью, и с растущим количеством вложенных файлов и папок вы можете столкнуться с проблемами производительности, но в итоге это всего лишь пример.

private function traverseDirectoryTree(dir:File):Vector.<File> 
{ 
    var list:Vector.<File> = new Vector.<File>; 
    list.push(dir); 
    for each (var file:File in dir.getDirectoryListing()) 
    { 
     if(!file.isHidden) 
     { 
      list.push(file); 
      if(file.isDirectory) 
      { 
       list = list.concat(traverseDirectoryTree(file)); 
      } 
     } 
    } 

    return list; 
} 

Смотрите также

Смежные вопросы