Как я могу определить, когда какой-либо файл изменяется в каталоге в AIR? - PullRequest
2 голосов
/ 23 сентября 2011

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

<mx:FileSystemList id="fs" visible="false" />

private function onCreationComplete():void
{
    fs.directory = File.applicationDirectory.resolvePath('../../assets');
    if (fs.directory.exists)
      addEventListener(FileEvent.DIRECTORY_CHANGE, onDirectoryChange);
}

private function onDirectoryChange(e:FileEvent):void
{
    trace("file was changed");
}

Это непохоже, не срабатывает при изменении файла

1 Ответ

0 голосов
/ 23 сентября 2011

Используйте класс FileMonitor.

http://www.mikechambers.com/blog/2009/03/11/monitoring-file-changes-in-adobe-air/

Код из учебника:

import com.adobe.air.filesystem.FileMonitor;
import flash.filesystem.File;
import flash.events.Event;
import com.adobe.air.filesystem.events.FileMonitorEvent;

private var monitor:FileMonitor;

private function onSelectButtonClick():void
{
    var f:File = File.desktopDirectory;
    f.addEventListener(Event.SELECT, onFileSelect);
    f.browseForOpen("Select a File to Watch.");
}

private function onFileSelect(e:Event):void
{
    var file:File = File(e.target);

    if(!monitor)
    {
        monitor = new FileMonitor();
        monitor.addEventListener(FileMonitorEvent.CHANGE, onFileChange);
        monitor.addEventListener(FileMonitorEvent.MOVE, onFileMove);
        monitor.addEventListener(FileMonitorEvent.CREATE, onFileCreate);
    }

    monitor.file = file;
    monitor.watch();
}

private function onFileChange(e:FileMonitorEvent):void
{
    trace("file was changed");
}

private function onFileMove(e:FileMonitorEvent):void
{
    trace("file was moved");
}

private function onFileCreate(e:FileMonitorEvent):void
{
    trace("file was created");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...