最近我一直在实际工作中研究这个主题,所有的研究都转到了这个可用的字节函数,你可以在下面看到:
function onInitFs(fs) {
var appDirectory = fs.root;
window.alert("Directorio de trabajo: " + appDirectory.toURL());
availableBytes(function (free_bytes) {
console.log("Interal free space(root + internal): " + (free_bytes / (1024 * 1024 * 1024)).toFixed(0) + "GB");
});
}
//Function used to know available space in internal storage
function availableBytes(callback, start, end) {
callback = callback == null ? function () {} : callback
start = start == null ? 0 : start
end = end == null ? 1 * 1024 * 1024 * 1024 * 1024 : end
//starting with 1 TB
limit = 1024 // precision of 1kb
start_temp = start
end_temp = end
callback_temp = callback
if (end - start < limit)
callback(start)
else {
window.requestFileSystem(LocalFileSystem.PERSISTENT, parseInt(end_temp - ((end_temp - start_temp) / 2)), function (fileSystem) {
setTimeout(function () {
availableBytes(callback_temp, parseInt(parseInt(end_temp - ((end_temp - start_temp) / 2))), end_temp)
}, 0)
}, function () {
setTimeout(function () {
availableBytes(callback_temp, start_temp, parseInt(end_temp - ((end_temp - start_temp) / 2)))
}, 0)
})
}
}
如您所见,我们可以很容易地知道内部存储大小,但是根存储大小(即我存储下载的视频和音乐的位置以及客户端不容易到达的位置(不能被"询问",所以......有人知道正确的方法吗?
为了获得设备的可用空间,您必须添加 cordova-file-plugin: https://github.com/apache/cordova-plugin-file/
然后在设备就绪事件之后,可以运行以下代码:
cordova.exec(function(result) {
alert("Free Disk Space: " + result);
}, function(error) {
alert("Error: " + error);
}, "File", "getFreeDiskSpace", []);
这将提醒以千字节为单位的总空间,只需转换为兆字节或千兆字节即可。