在ActionScript 3.0参考的FileStream条目中,标明了当文件位置位于应用程序目录中,并将fileMode参数设置为“追加”、“更新”或“写入”模式时,FileStream对象的openopenAsync方法会抛出SecurityError异常。亦即AIR程序是没有权限修改应用程序目录中的文件的。应用程序的配置文件则推荐存储于File.applicationStorageDirectory文件夹中。测试后发现,其判断文件位置是否位于应用程序目录中的算法是判断File对象是否是File.applicationDirectory对象的resolvePath方法返回的值,而不是进行nativePath的判断,所以可以通过nativePath的导出再导入的方式突破这个限制。具体来说就是

var f:File = File.applicationDirectory.resolvePath("hello.world").nativePath;
var s:FileStream = new FileStream();
s.open(f, FileMode.WRITE);
s.close();

这个过程会在open一行抛出SecurityError异常。但是如果我们将第一行更改为

var f:File = new File(File.applicationDirectory.resolvePath("hello.world").nativePath);

时,AIR将不再抛出任何异常。这个安全保障则会失去原有的意义。