ActionScript 3:获取File对象的字符串值

时间:2012-11-06 20:24:39

标签: actionscript-3

我的Flash项目属性设置为:AIR 3.4 for Desktop和ActionScript 3.0 ...

我为用户创建了一个按钮,用于从本地驱动器中选择文件(csv)。然后我希望能够获取文件对象的字符串值,但不知道如何...

这是我到目前为止所做的:

BTN_CSV.addEventListener(MouseEvent.CLICK, getCSV);

var myFile:File = new File();

function getCSV(e:MouseEvent):void {
    var docFilter:FileFilter = new FileFilter("Documents", "*.csv");

    myFile.browse([docFilter]);
    myFile.addEventListener(Event.COMPLETE, completeHandler);
}


function completeHandler(event:Event) {
    var csvData = myFile.nativePath;
    csvData = csvData.data.split("\n");

    parseCSV(csvData);
}

我收到错误1061:通过带有静态类型flash.utils:ByteArray的引用调用可能未定义的方法。我不知道如何获取文件obj的文件路径...

1 个答案:

答案 0 :(得分:0)

文件类基本上只是指向所需文件的指针 你的代码几乎就是你需要在FileStream类中添加的。 Source

import flash.filesystem.*;
import flash.events.Event;

var file:File = File.documentsDirectory;
file = file.resolvePath("Apollo Test/test.txt");
var fileStream:FileStream = new FileStream();
fileStream.addEventListener(Event.COMPLETE, fileCompleteHandler)
fileStream.openAsync(file, FileMode.READ);

function fileCompleteHandler(event:Event):void {
    var str:String = fileStream.readMultiByte(fileStream.bytesAvailable, File.systemCharset);
    trace(str);
    fileStream.close();
}

[编辑]

import flash.events.Event;
import flash.filesystem.File
import flash.filesystem.FileStream
import flash.filesystem.FileMode

var file:File =File.documentsDirectory;
file.addEventListener(Event.SELECT,onSelect)
file.browse()


function onSelect(event:Event):void{
    var fileStream:FileStream = new FileStream();
    fileStream.open(file, FileMode.READ);
    var str:String = fileStream.readMultiByte(file.size, File.systemCharset);
    trace(str);   
}