通过Flex中的FileReference打开读取文件

时间:2012-04-11 08:52:43

标签: flex actionscript air

我必须浏览并在AIR中打开一个文件。 我可以通过File类访问该文件:

var file:File = File.applicationStorageDirectory.resolvePath("somefile.txt");
var stream:FileStream = new FileStream();
stream.open(file, FileMode.READ);

我可以通过FileReference类浏览文件:

var fileRef:FileReference = new FileReference();
fileRef.browse(allTypes);

但我似乎无法将FileReference对象中的文件存入File对象。

在打开文件参考后,没有“路径”成员暴露,任何想法?

1 个答案:

答案 0 :(得分:1)

您必须使用File#browseForOpen()代替FileReference#browse(),如下所示:

private var f:File;

public function browseForRead():void {
    f = File.documentsDirectory;
    f.addEventListener(Event.SELECT, readFile); 
    f.browseForOpen("Open file");
}

private function readFile(event:Event):void {
    var stream:FileStream = new FileStream();
    stream.open(f, FileMode.READ);
    trace(stream.readUTFBytes(stream.bytesAvailable));
}

FileReference#browse()用于在Web应用程序中上传文件。