0

发现了一个用于检测目录更改的类,但似乎只适用于 Mac 桌面,而不是 Windows。

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

FileMonitor 类只检测我相信的单个文件的更改。

有谁知道在 Windows 桌面上使用 AIR 检测目录更改的方法?

4

1 回答 1

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;
}

也可以看看

于 2013-10-14T22:47:02.127 回答