6. 目录操作 6.1 创建目录
如果存在该目录,就创建失败
同步创建目录fs.mkdirSync(path, [mode])
const fs = require("fs"); let mkdir = "./mkdir"; fs.mkdir(mkdir, (err) => { if (err) { console.log(`mkdir ${mkdir} file failed~`); } else { console.log(`mkdir ${mkdir} file success~`); } });6.2 读取目录
如果读取的目录下有子目录或子文件,将会把子目录或子文件的文件名作为files的数组元素
同步读取目录fs.readdirSync()
const fs = require("fs"); let mkdir = "./mkdir"; fs.mkdir(mkdir, (err) => { if (err) { console.log(`mkdir ${mkdir} file failed~`); return false; } console.log(`mkdir ${mkdir} file success~`); let fileName = ["ONE", "TWO", "THREE"]; fileName.forEach((elem) => { fs.mkdir(`${mkdir}/${elem}`, (err) => { if (err) { console.log(`${mkdir}/${elem} failed~`); return false; } }); fs.readdir(mkdir, (err, files) => { if (err) { console.log(`readdir ${mkdir} file failed~`); return false; } console.log(`readdir ${mkdir} file success~`); console.log(`${files}`); }); }); });7. 查看与修改文件或目录信息
在fs模块中,可以使用stat方法或者lstat方法查看一个文件或一个目录。唯一区别在于当查看符号链接文件的信息时,必须使用lstat方法。
fs.stat(path, callback(err, stats))
fs.lstat(path, callback(err, stats))
7.1 查看文件信息同步方法查看文件信息fs.statSync(path);
const fs = require("fs"); let mkdir = "./mkdir"; fs.stat(mkdir, (err, stats) => { if (err) { console.log(`fs.stats ${mkdir} file failed~`); } else { console.log(`fs.stats ${mkdir} file success~`); console.log(stats); } });
stats详解
Stats { dev: 2050,文件或目录所在的设备ID,仅在UNIX有效 mode: 16877,使用数值形式代表的文件或目录的权限标志 nlink: 3,文件或目录的硬连接数量 uid: 0,文件或目录的所有者的用户ID,仅在UNIX有效 gid: 0,文件或目录的所有者的用户组ID,仅在UNIX有效 rdev: 0,为字符设备文件或块设备文件所在设备ID,仅在UNIX有效 blksize: 4096, ino: 4197533,文件或目录的索引编号,仅在UNIX有效 size: 4096,文件尺寸,即文件中的字节数 blocks: 8, atimeMs: 1511846425357.986, mtimeMs: 1511846425256.986, ctimeMs: 1511846425256.986, birthtimeMs: 1511846425256.986, atime: 2017-11-28T05:20:25.358Z,文件的访问时间 mtime: 2017-11-28T05:20:25.257Z,文件的修改时间 ctime: 2017-11-28T05:20:25.257Z,文件的创建时间 birthtime: 2017-11-28T05:20:25.257Z }7.2 fstat方法查询文件信息
使用open方法或openSync方法打开文件并返回文件描述符时,可以使用fs模块中的fstat方法查询被打开的文件信息
const fs = require("fs"); let mkdir = "./mkdir"; fs.open(mkdir, "r", (err, fd) => { if (err) { console.log(`open ${mkdir} file failed~`); return false; } fs.fstat(fd, (err, stats) => { if (err) { console.log(`fstat ${mkdir} file failed~`); return false; } console.log(JSON.stringify(stats)); }) })
fs.fstat结果
{ "dev": 1041887651, "mode": 16822, "nlink": 1, "uid": 0, "gid": 0, "rdev": 0, "ino": 4222124650663107, "size": 0, "atimeMs": 1519394418412.3062, "mtimeMs": 1519394418412.3062, "ctimeMs": 1519394418412.3062, "birthtimeMs": 1519394418402.2554, "atime": "2018-02-23T14:00:18.412Z", "mtime": "2018-02-23T14:00:18.412Z", "ctime": "2018-02-23T14:00:18.412Z", "birthtime": "2018-02-23T14:00:18.402Z" }7.3 检查文件或目录是否存在
参数为boolean类型的值
const fs = require("fs"); let mkdir = "./mkdir"; fs.exists(mkdir, (exits) => { if (exits) { console.log(`${exits}, ${mkdir} file exists`); } else { console.log(`${exits}, ${mkdir} file not exists`) } });7.4 修改文件访问时间及修改时间
fs.utimes(path, atime, mtime, callback(err))
同步修改文件访问时间及修改时间fs.utimesSync(path, atime, mtime)
// 修改文件访问时间及修改时间都为当前时间 const fs = require("fs"); let mkdir = "./mkdir"; fs.utimes(mkdir, new Date(), new Date(), (err) => { if (err) { console.log(`fs.utimes ${mkdir} file failed~`); } else { console.log(`fs.utimes ${mkdir} file success~`); } })7.5 修改文件或目录的权限
同步修改文件或目录的权限fs.chmodSync(path, mode);
fs.chmod(path, mode, callback(err))
mode代表的是权限的大小
fs.chmod方法触发前的权限是drwxr-xr-x.
fs.chmod方法触发后的权限是drw-------.
const fs = require("fs"); let mkdir = "./mkdir"; fs.chmod(mkdirOne, "0600", (err) => { if (err) { console.log(`fs.chmod ${mkdir} file failed`); return false; } console.log(`fs.chmod ${mkdir} file success~`); });
在使用open方法或openSync方法打开文件并返回文件描述符之后,可以使用fs模块中的fchmod方法修改文件的读写权限
const fs = require("fs"); let mkdir = "./mkdir"; fs.open(mkdir, "r", (err, fd) => { if (err) { console.log(`open file ${mkdir} failed~`); return false; } fs.fchmod(fd, "0600", (err) => { if (err) { console.log(`fs.fchmod ${mkdir} file failed~`); return false; } console.log(`fs.fchmod ${mkdir} file success~`); }) });
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/110128.html
摘要:如果打开一个文件的符号链接文件进行编辑,操作系统将自动打开符号链接中所指向的原文件进行编辑,如果打开一个目录的符号链接文件进行文件的操作编辑或删除操作,则操作系统将西东打开符号链接中所指向的原目录并执行相应的操作。 8. 对文件或目录执行的其他操作 8.1 修改文件名字或移动文件目录fs.rename fs.rename(oldPath, newPath, callback(err...
fs文件系统 在Node.js中,提供一个fs模块,以实现文件及目录的读写操作。 1. 同步和异步方法 一般来讲,读取文件使用异步的方法,但是在读取例如系统配置文件时,应该使用同步的方法 2. 普通文件写入和读取 2.1 文件写入 2.1.1 写入一个基本的文本文件 如果不存在要写入的文件,那么将会自动创建一个文件 const fs = require(fs); let writeData = T...
摘要:中各种用于读取数据的对象对象描述用于读取文件代表客户端请求或服务器端响应代表一个端口对象用于创建子进程的标准输出流。如果子进程和父进程共享输入输出流,则子进程的标准输出流被废弃用于创建子进程的标准错误输出流。 9. stream流 fs模块中集中文件读写方法的区别 用途 使用异步方式 使用同步方式 将文件完整读入缓存区 readFile readFileSync 将文件部...
摘要:在中,只支持单线程。在这种场合下,如果能够使用多进程,则可以为每个请求分配一个进程,从而可以更好地使用服务器端的资源。进程进程对象的属性用于运行应用程序的可执行文件的绝对路径的版本号及其各依赖的版本号当前运行的平台用于读入标准输入流的对象。 Process 在Node.js中,只支持单线程。但是在应用程序中,如果只使用单线程进行操作,从接收请求开始到返回响应为止的这段时间内可能存在很长...
阅读 703·2021-07-25 21:37
阅读 3634·2019-08-30 15:55
阅读 2557·2019-08-30 15:54
阅读 1688·2019-08-30 15:44
阅读 3078·2019-08-30 15:44
阅读 841·2019-08-30 15:43
阅读 1006·2019-08-29 15:36
阅读 3020·2019-08-29 10:58