我的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的文件路径...
答案 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);
}