
const size = await utilsgetFileSize(filePath);
getFileSize(file) {
file = decodeURI(file);
return new Promise((resolve) => {
if (!file) {
resolve(0);
return;
}
const filePath = pathresolve(__dirname, "/public", file);
fsstat(filePath, (err, data) => {
if (err == null) {
resolve(datasize);
return;
}
resolve(0);
});
});
},
在JS中变量被分为基本类型变量和引用类型变量。
1、基本类型变量用八字节内存,存储基本数据类型(数值、布尔值、null和未定义)的值。
2、引用类型变量则只保存对对象、数组和函数等引用类型的值得引用(即内存地址)。
JS字符串的长度受到下标限制。理论最大长度是2^53-1(即js中可表达的最大安全整数)。
2^53是多大呢?大约9PB。根据统计,中国2014年所有出版物(不计复本)不到2000亿字,也就是400GB而已。
按此推算,不要说存一个txt了,中国自有甲骨文以来所有的书、各类出版物字数加在一起估计也不可能超过100TB,也就是01PB。
当然啦,实际引擎是不可能允许分配那么大的字符串的,你的电脑也没那么大存储不是。V8的heap上限只有2GB不到,允许分配的单个字符串大小上限更只有大约是512MB不到。JS字符串是UTF16编码保存,所以也就是268亿个字符。FF大约也是这个数字
最近项目有个需求要用js计算一串字符串写入到localStorage里所占的内存,众所周知的,js是使用Unicode编码的。而Unicode的实现有N种,其中用的最多的就是UTF-8和UTF-16。因此本文只对这两种编码进行讨论。
使用JavaScript中ActiveXObject 对象的方法:
语法
newObj = new ActiveXObject(servernametypename[, location])
参数
newObj:必选。 ActiveXObject 分配到的变量名称。
servername:必选。 提供对象的应用程序的名称。
typename :必选。 要创建的对象的类型或类。
location:可选。 要在其中创建对象的网络服务器的名称。
备注
自动化服务器至少提供一种对象。 例如,字处理应用程序可能会提供应用程序对象、文档对象和工具栏对象。
你可以在 HKEY_CLASSES_ROOT 注册表项中标识宿主 PC 上的 servernametypename 值。 例如,下面是可在此处找到的几个值示例,具体取决于安装的程序:
ExcelApplication
ExcelChart
ScriptingFileSystemObject
WScriptShell
WordDocument
要求
在以下文档模式中受支持:Quirks、Internet Explorer 6 标准、Internet Explorer 7 标准、Internet Explorer 8 标准、Internet Explorer 9 标准、Internet Explorer 10 标准和 Internet Explorer 11 标准。 在 Windows 8x 应用商店应用中不受支持。 请参见JavaScript 版本信息。
应用相关方法
创建对象实例后,就可以使用对象的相关方法了。比如,使用CreateTextFile方法创建一个文本文件:var fso = new ActiveXObject(“ScriptingFileSystemObject”);var f1 = fsocreatetextfile(“c:\\myjstesttxt”,true”);
访问对象相关属性
要访问对象的相关属性,首先要建立指向对象的句柄,这就要通过get系列方法实现:GetDrive负责获取驱动器信息,GetFolder负责获取文件夹信息,GetFile负责获取文件信息。比如,指向下面的代码后,f1就成为指向文件c:\testtxt的句柄:var fso = new ActiveXObject(“ScriptingFileSystemObject”);var f1 = fsoGetFile(“c:\\myjstesttxt”);然后,使用f1访问对象的相关属性。比如:var fso = new ActiveXObject(“ScriptingFileSystemObject”);var f1 = fsoGetFile(“c:\\myjstesttxt”);alert(“File last modified: ” + f1DateLastModified);执行上面最后一句后,将显示c:\myjstesttxt的最后修改日期属性值。但有一点请注意:对于使用create方法建立的对象,就不必再使用get方法获取对象句柄了,这时直接使用create方法建立的句柄名称就可以:var fso = new ActiveXObject(“ScriptingFileSystemObject”);var f1 = fsocreatetextfile(“c:\\myjstesttxt”,true”);alert(“File last modified: ” + f1DateLastModified);
*** 作驱动器(Drives)
使用FileSystemObject对象来编程 *** 作驱动器(Drives)和文件夹(Folders)很容易,这就象在Windows文件浏览器中对文件进行交互 *** 作一样,比如:拷贝、移动文件夹,获取文件夹的属性。
Drives对象属性
Drive对象负责收集系统中的物理或逻辑驱动器资源内容,它具有如下属性:l TotalSize:以字节(byte)为单位计算的驱动器大小。l AvailableSpace或FreeSpace:以字节(byte)为单位计算的驱动器可用空间。l DriveLetter:驱动器字母。l DriveType:驱动器类型,取值为:removable(移动介质)、fixed(固定介质)、network(网络资源)、CD-ROM或者RAM盘。l SerialNumber:驱动器的系列码。l FileSystem:所在驱动器的文件系统类型,取值为FAT、FAT32和NTFS。l IsReady:驱动器是否可用。l ShareName:共享名称。l VolumeName:卷标名称。l Path和RootFolder:驱动器的路径或者根目录名称。
Drive对象 *** 作例程
下面的例程显示驱动器C的卷标、总容量和可用空间等信息:var fso, drv, s =”";fso = new ActiveXObject(“ScriptingFileSystemObject”);drv = fsoGetDrive(fsoGetDriveName(“c:\\”));s += “Drive C:” + ” – “;s += drvVolumeName + “\n”;s += “Total Space: ” + drvTotalSize / 1024;s += ” Kb” + “\n”;s += “Free Space: ” + drvFreeSpace / 1024;s += ” Kb” + “\n”;alert(s);
ActiveX 对象可能存在安全问题。 若要使用 ActiveXObject,你可能需要在相关安全区域的 Internet Explorer 中调整安全设置。 例如,对于本地 Intranet 区域,通常需要将自定义设置更改为“对没有标记为安全的 ActiveX 控件进行初始化和脚本运行”。
如果没有可用的自动化对象的参考文档,则要标识可以在代码中使用的自动化对象的成员,你可能需要使用 COM 对象浏览器,例如 OLE/COM 对象查看器。
对象为object
了解js的都知道, 有个typeof 用来判断各种数据类型,有两种写法:typeof xxx ,typeof(xxx)
如下实例:
typeof 2 输出 number
typeof null 输出 object
typeof {} 输出 object
typeof [] 输出 object
typeof (function(){}) 输出 function
typeof undefined 输出 undefined
typeof '222' 输出 string
typeof true 输出 boolean
这里面包含了js里面的五种数据类型 number string boolean undefined object和函数类型 function
第一种通过获取
第二种通过[]获取
那什么时候用点获取什么时候[]呢,可以在不同场景使用
两个的相同点:都是获取对象属性值
不同点:
1 [ ]运算符可以使用字符串变量的内容作为属性名,点运算符不能
普通常量赋值的时候可以用点运算符,其他可以用[]运算符,
以上就是关于Node.js如何获取文件大小全部的内容,包括:Node.js如何获取文件大小、JS 字符串变量里能存放多少个字节(大小)、如何使用JavaScript中的ActiveXObject 对象等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)