如何在actionscript 3中异步获取文件修改日期

时间:2012-08-28 13:31:55

标签: actionscript-3 file asynchronous


我正在尝试轮询文件以检查它是否已在磁盘上修改或删除。
如果网络速度较慢,如果我使用文件existsmodificationDate属性,则应用程序将挂起。

有没有办法异步进行?

样品

var f:File = new File(url);
if (f.exists && f.modificationDate.getTime() > oldModificationDate) { // hangs on both exists and modificationDate calls
    // File changed on disk
    ...

感谢您的帮助,
保罗

1 个答案:

答案 0 :(得分:0)

这可能有点hacky,但是使用getDirectoryListingAsync()呢?您可以创建一个临时File对象,该对象指向您想要的文件所在的目录。调用异步处理程序时,您可以遍历结果,直到找到与目标匹配的文件,然后进行日期检查。像这样:

var expectedName:String = "myFile";
var oldModificationDate:Date=new Date();

public function fileCheck(fileName:String)
{
File file = new File(fileName);
File dir = new File("/somefiles/localDir/");
dir.getDirectoryListingAsync();
dir.addEventListener(FileListEvent.DIRECTORY_LISTING, directoryListingHandler);
}

function directoryListingHandler(event:FileListEvent):void {
    var list:Array = event.files;
    for (var i:uint = 0; i < list.length; i++) {
        if(list[i].name==expectedName && f.modificationDate.getTime() > oldModificationDate)
          {
            fileFoundHandler();
          }
    }
}

function fileFoundHandler():void
{
  //your response code goes here
}