Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript cordova中的文件大小函数_Javascript_Cordova_Cordova Plugin File - Fatal编程技术网

Javascript cordova中的文件大小函数

Javascript cordova中的文件大小函数,javascript,cordova,cordova-plugin-file,Javascript,Cordova,Cordova Plugin File,也许这是一个简单的问题,但我花了两天时间在寻找,却找不到答案 我正在cordova开发一个文件管理器,只是为了学习cordova插件文件 我已使用此功能获得文件夹中的文件列表: window.resolveLocalFileSystemURL(cordova.file.externalDataDirectory, function (dirEntry) { var directoryReader = dirEntry.createReader(); directoryReade

也许这是一个简单的问题,但我花了两天时间在寻找,却找不到答案

我正在cordova开发一个文件管理器,只是为了学习cordova插件文件

我已使用此功能获得文件夹中的文件列表:

window.resolveLocalFileSystemURL(cordova.file.externalDataDirectory, function (dirEntry) {

    var directoryReader = dirEntry.createReader();
    directoryReader.readEntries(function(entries) {

        var row;

        for (i=0; i<entries.length; i++) {

            row = entries[i];
            console.log(row.name);

        }

    }, function(error) {
        console.log(error);
    });

}, function(error) {
    console.log(error);
});
在for循环中有没有一种方法可以实现这样的目标

var row;
var size;

for (i=0; i<entries.length; i++) {

    row = entries[i];
    size = getFileSize(cordova.file.externalDataDirectory + row.name);
    console.log(row.name);

}
var行;
变量大小;

对于(i=0;iNo),您不能这样做,由于调用的异步性质,您需要回调。然后您可以呈现

我相信您在entries数组中有所有文件名/路径

var size_array = [];
var total = 0;

for(var i = 0; i < entries.length; i++){
     getFileSize(i);
}


function getFileSize(index) {

    window.resolveLocalFileSystemURL(entries[index], function (fileEntry) {
        fileEntry.file(function(fileObj) {
            var bytes = fileObj.size;
            var i = Math.floor(Math.log(bytes) / Math.log(1024)),
            sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
            size_array[index] = (bytes / Math.pow(1024, i)).toFixed(2) * 1 + ' ' + sizes[i];
            total ++;
            if(total === entries.length){
                filesReady();
            }
        });
    });

}


function filesReady(){
   for(var i = 0; i < entries.length; i++){
      entries[i] <-- your file
      size_array[i] <-- its size
   }
}
var size_数组=[];
var合计=0;
对于(变量i=0;ivar size_array = [];
var total = 0;

for(var i = 0; i < entries.length; i++){
     getFileSize(i);
}


function getFileSize(index) {

    window.resolveLocalFileSystemURL(entries[index], function (fileEntry) {
        fileEntry.file(function(fileObj) {
            var bytes = fileObj.size;
            var i = Math.floor(Math.log(bytes) / Math.log(1024)),
            sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
            size_array[index] = (bytes / Math.pow(1024, i)).toFixed(2) * 1 + ' ' + sizes[i];
            total ++;
            if(total === entries.length){
                filesReady();
            }
        });
    });

}


function filesReady(){
   for(var i = 0; i < entries.length; i++){
      entries[i] <-- your file
      size_array[i] <-- its size
   }
}