文件长度未定义

File length is undefined

使用 Tizen SDK 的文件系统 API,我得到一个 javascript 文件对象,它在 console.log 上打印以下数据:

File
created: Thu Dec 14 2017 09:59:51 GMT+0100 (CET)
fullPath: "/opt/share/folder/image.jpg"
get fileSize: function fileSizeGetter() {var _realPath=commonFS_.toRealPath(this.fullPath);var _result=native_.callSync('File_statSync',{location:_realPath});var _aStatObj=native_.getResultObject(_result);return _aStatObj.isFile?_aStatObj.size:undefined;}
isDirectory: false
isFile: true
length: undefined
mode: "rw"
modified: Thu Dec 14 2017 09:59:51 GMT+0100 (CET)
name: "image.jpg"
parent: File
path: "/opt/share/folder/"
readOnly: false
set fileSize: function () {}
__proto__: File

问题是文件的长度是未定义。这导致我的 Filereader readyState 停留在 0 (EMPTY) 状态(或者问题可能出在其他地方)。

为什么我的代码返回未定义的长度参数?

我的代码:

tizen.filesystem.resolve('/opt/share/folder/image.jpg', function(file) {
    console.log(file);

    var reader = new FileReader();
    console.log(reader);
    reader.readAsArrayBuffer(file);
    reader.onload = fileLoad;
    reader.onerror = function(evt){
        console.log(evt.target.error.name);
    }
});

reader 的控制台值:

FileReader
constructor: FileReaderConstructor
error: null
onabort: null
onerror: function (evt) {
onload: function fileLoad(evt) {
onloadend: null
onloadstart: null
onprogress: null
readyState: 0
result: null
__proto__: FileReaderPrototype

精度:

正在使用文件 url 在 canvas 中插入图像,并且该文件存在于设备上

根据the documentation, length is for File instances representing directories (it tells you how many files and directories the directory contains). For a File actually representing a file, you'd use fileSize

我在 Tizen file system documentation. Instead, examples reading and writing files 中的任何地方都没有看到 FileReader 通过 openStream 使用 FileStream