>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Мониторить каталог локальной файловой системы из JavaScript? http://forum.mozilla-russia.org/viewtopic.php?id=67064 |
yinfo > 04-04-2015 00:02:41 |
При запуске FireFox загружается JavaScript, который должен мониторить заданный каталог локальной файловой системы на предмет появления в нём новых файлов .TXT. Я пока реализовал самый тупой вариант, что пришел в голову - использовать setInterval : Выделить код Код:const Cc = Components.classes; const Ci = Components.interfaces; var paramsFolder = "C:\\iMacros\\Macros\\params\\"; window.setInterval(function(){ var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile); file.initWithPath( paramsFolder ); var entries = file.directoryEntries; var array = []; while(entries.hasMoreElements()){ var entry = entries.getNext(); entry.QueryInterface(Ci.nsIFile); array.push(entry); } if (array.length>0){ /* Тут что-то делаем с файлами... */ } }, 2000); Так как я изучаю только FireFox XUL и Javacript, то у меня возникли сомнения - разве можно так делать - в цикле долбиться к папке. Может быть какой-нибудь интерфейс FireFox предоставляет возможность подключиться к папке и слушать изменения? Или слушать изменения одного конкретного файла, если есть хотя бы такая возможность. |
yinfo > 04-04-2015 11:22:24 |
okkamas_knife пишет
А жаль. okkamas_knife пишет
Спасибо за мысль про setTimeout, этот метод, ИМХО, действительно больше подходит для моей цели. "до перезапуска браузера" - это было бы идеально, но у меня почему-то все не как у людей.. setTimeout в глобальном пространстве имен отсутствует, он в моем контексте исполнения (iMacros) существует только для двух объектов: С первым вариантом легкая трудность - window закрыли и setTimeout не работает (это и логично и проверил только что). |