是否可以加载本地文件而无需要求用户首先在AIR应用程序中浏览它?

时间:2011-07-22 06:07:26

标签: flex actionscript-3 air

我正在为自己编写一个小应用程序,而不是使用数据库,我只想使用Excel来存储我在本地文件系统上的少量数据。我希望能够加载该数据而无需使用典型的FileReference browse()方法,因为每次使用该应用程序时都会很烦人。

下面的代码似乎找到了正确的文件作为下面的file.exists方法,大多数其他属性似乎是正确的,但file.data始终为空。

我猜这是一个安全问题,这就是我遇到这个问题的原因,但我想我会问,看看是否有解决这个问题的方法。

var file:File = new File(fullPath + "\\" + currentFolder + ".txt");
if(file.exists) {
     var byteArray:ByteArray = file.data;
}

2 个答案:

答案 0 :(得分:3)

你很接近,你只需要将它与FileStream对象结合起来

var fileStream:FileStream = new FileStream();
fileStream.open(file, FileMode.READ);
var str:String = fileStream.readMultiByte(file.size, File.systemCharset);
trace(str);

more info here

答案 1 :(得分:3)

如果要阅读文件内容,请使用以下代码:

var stream:FileStream = new FileStream();
stream.open("some path here", FileMode.READ);
var fileData:String = stream.readUTFBytes(stream.bytesAvailable);
trace(fileData);

data属性继承自FileReference类,只有在加载调用后才会填充(请参阅此link)。