0

我的 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 的文件路径...

4

1 回答 1

0

文件类基本上只是一个指向你想要的文件的指针。
您的代码几乎就在那里,您只需在 FileStream 类中添加即可。 来源

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);   
}
于 2012-11-06T20:43:03.263 回答