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

从Node.js Stream写入多个文件

nodejs常用代码片段

HTTP 状态代码 200 但页面未加载 Node.js Socket.io -- 使用 Socket.io 的 Node.js 教程,Daniel Nill,fs.readFile(),socket

Node.JS:fs.readFile 在 Ubuntu 上不起作用