Node.js如何获取文件大小

Node.js如何获取文件大小,第1张

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 对象等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9727806.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存