2009-11-18 47 views
0

我试图得到两个不同的应用程序通过文件传达到文件。我想要应用程序1将一些文本附加到文件,应用程序2注意并读取新的字节(而不是整个文件)。Adob​​e空气 - 阅读更新使用FileStream

有一个事件,使用ProgressEvent.PROGRESS,是应该在新的数据都可以在一个FileStream火,但它只火灾时,我第一次打开该文件。

基本上,我想离开的FileStream开放,听像该文件更改的最后一个插座。可能吗?任何性能考虑?

Thanks1

回答

0

可以使用FileMonitor类,它是Adobe的“的as3corelib”包监视文件的一部分。

http://code.google.com/p/as3corelib/

它配备了FileMonitorEvent.CHANGE,移动和创建活动。

介绍和例子在这里:

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

+0

是的,我希望避免使用计时器。这令人失望。除非有人想出更好的东西,否则我会将此答案标记为正确。 – 2009-11-19 16:21:14

0

我想说保持文件大小的记录,具有定时定期检查,然后寻求当它变得更大了旧文件的末尾。对于AIR 2.0,应该很容易,如果你嵌入类似于“tail -f”的东西。

+0

没错,我认为这将是内置。这不像看文件的变化是火箭科学。我发现FileStream的进度事件,但它似乎不工作。感谢您的回答。 – 2009-11-19 16:21:54

0

我明白,你可能希望类似插座的“接口”用于读取/两个应用程序之间的写入文件,但你也许可以完成同样的事情有一个本地SharedObject和一个'manager'类,它使用localConnection类对该共享对象/文件执行某些操作。随想....

+0

好主意,但它应该和平面文件一样,除非打开的本地共享对象在其他人写入时触发事件。 – 2009-12-14 03:20:29

+0

是的。我的印象是,这更像是1:1的“应用程序关系”。我也会尽量避免计时器,只是为了解决内存问题......所以,如果你有一个“许多:许多应用程序的关系”,你可以玩消息服务器游戏并订阅消息提要。 但是,如果你有一个1:1的关系的应用程序,使用LocalConnection的唯一目的就是让你创建做“事件触发”那你说的管理器类。但是,正如我所说,如果app1和app2的scenerio只存在于您最初描述的情况下,那么只有一个很好的选择。 祝你好运,无论哪种方式。 – jeremym 2009-12-14 16:12:46