node, fs
Posted 就你叫夏洛?
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了node, fs相关的知识,希望对你有一定的参考价值。
fs模块操作文件系统(文件/目录)
在fs模块中,可以使用stat方法或lstat方法查看一个文件或目录信息。当查看符号链接文件的信息时,必须使用lstat方法。
一、异步方法
1.语法
fs.stat(path, callback);
fs.lstat(path, callback);
2.参数
(1)path:用于指定需要被查看的文件或目录的完整路径及文件名或目录名;
(2)callback:用于指定查看文件或目录信息操作完毕时执行的回调函数,方法如下:
function(err, stats){ …… }。
(2-1)参数:
err:查看文件或目录信息操作失败时触发的错误对象;
stats:一个fs.Stats对象。
(2-2)该对象具有如下一些方法:
☛ isFile:用于判断被查看的对象是否为一个文件,如果是返回true,否则,返回false;
☛ isDirectory:用于判断被查看的对象是否为一个目录,如果是的话则返回true,否则,返回false;
☛ isBlockDevice:用于判断被查看的文件是否为一个块设备文件,如果是的话则返回true,否则,返回false(仅在Unix操作系统下有效);
☛ isCharacterDevice:用于判断被查看的文件是否为一个字符设备文件,如果是的话则返回true,否则,返回false(仅在Unix操作系统下有效);
☛ isSymbolicLink:用于判断被查看的文件是否为一个符号链接文件,如果是的话则返回true,否则,返回false。该方法仅在lstat方法的回调函数中有效;
☛ isFIFO:用于判断被查看的文件是否为一个FIFO,如果是的话则返回true,否则,返回false(仅在Unix操作系统下有效);
☛ isSocket:用于判断被查看的文件是否为一个socket文件,如果是的话则返回true,否则,返回false(仅在Unix操作系统下有效);
(2-3)该对象具有如下一些属性:
☛ dev:该属性值为文件或者目录所在设备ID,该属性值仅在Unix操作系统下有效;
☛ ino:该属性值为文件或者目录的索引编号,该属性值仅在Unix操作系统下有效;
☛ mode:该属性值为使用数值形式代表的文件或目录的权限标志;
☛ nlink:该属性值为文件或者目录的硬连接数量;
☛ uid:该属性值为文件或者目录的所有者的用户ID,该属性值仅在Unix操作系统下有效;
☛ gid:该属性值为文件或目录的所有者的组ID,该属性值仅在Unix操作系统下有效;
☛ rdev:该属性值为字符设备文件或块设备文件所在设备ID,该属性值仅在Unix操作系统下有效;
☛ size:该属性值为文件尺寸(即文件中的字节数);
☛ atime:该属性值为文件的访问时间;
☛ mtime:该属性值为文件的修改时间;
☛ ctime:该属性值为文件的创建时间;
1
2
3
4
var fs = require(\'fs\');
fs.stat( \'./server.js\',function(err, stats){
console.log(stats);
});
运行结果:
二、同步方式
在使用同步方式查看文件信息时,可以使用fs模块中的statSync方法或lstatSync方法。
1.语法
var mystat = fs.statSync(path);
var mystat = fs.lstatSync(path);
2.参数
path:用于指定需要被查看的文件或者目录的完整路径及文件名或目录名。
该方法返回存放了文件信息的fs.Stats对象。
三、fstat/fstatSync
在使用open或者openSync方法打开文件并返回文件描述符后,可以使用可以使用fs模块中的fstat或者fstatSync方法查询被打开的文件信息。
1、语法
fs.fstat( fd, callback );
var mystat = fs.fstatSync( fd ); //该方法返回存放了文件信息的fs.Stats对象
2、参数
fd:参数值必须为打开文件时返回的文件描述符;
callback:用于指定查看文件或目录信息操作完毕时执行的回调函数,该回调函数的指定方法与stat方法的第二个参数值回调函数完全相同;
以上是关于node, fs的主要内容,如果未能解决你的问题,请参考以下文章
如何将使用 fs.readFileSync() 的 Node.js 代码重构为使用 fs.readFile()?
使用 node js 将代码从 fs 更改为 fs-extra
HTTP 状态代码 200 但页面未加载 Node.js Socket.io -- 使用 Socket.io 的 Node.js 教程,Daniel Nill,fs.readFile(),socket