node.js 中的 fs (文件)模块
记录 fs 模块的方法及使用
1. fs.stat 获取文件大小,创建时间等信息
// 引入 fs 模块
const fs = require('fs'); fs.stat('01.fs.js', (err, stats) => {
if (err) {
console.log(err);
return false;
} else {
// 检测类型,是文件还是目录
console.log(`文件:${stats.isFile()}`);
console.log(`目录:${stats.isDirectory()}`);
if (stats.isFile()) {
// 文件大小
console.log(`size:${stats.size}`);
// 创建时间
console.log(`birth time: ${stats.birthtime}`);
// 最后一次修改时间
console.log(`modified time:${stats.mtime}`);
}
}
})
结果如下:
文件:true
目录:false
size:
birth time: Wed Jul :: GMT+ (中国标准时间)
modified time:Wed Jul :: GMT+ (中国标准时间)
2. fs.mkdir 创建目录
// 创建目录
// path:将创建的目录路径
// mode:目录权限(读写权限),默认0777
// callback:回调,传递异常参数err
fs.mkdir('css',(err)=>{
if(err){
console.log(err);
return false;
}
console.log('创建目录成功');
})
3. fs.writeFile 写入文件
// filename (String) 文件名称
// data (String | Buffer) 将要写入的内容,可以使字符串 或 buffer数据。
// options (Object) option数组对象,包含:
// · encoding (string) 可选值,默认 ‘utf8′,当data使buffer时,该值应该为 ignored。
// · mode (Number) 文件读写权限,默认值 438
// · flag (String) 默认值 ‘w'
// callback {Function} 回调,传递一个异常参数err。
fs.writeFile('t.txt','你好 node.js',(err)=>{
if(err){
console.log(err);
return false;
}
console.log('写入成功');
})
注意: 如果没有 't.txt' 文件,会先创建文件,然后写入内容,如果已经存在 't.txt' 文件,则会覆盖原来的内容
4.fs.appendFile 追加文件
fs.appendFile('t1.txt','这是写入的内容',(err)=>{
if(err){
console.log(err);
return false;
}
console.log('追加成功');
})
注意:如果要追加的文件不存在,则创建该文件,多次执行可以多次追加,而 writeFile 则是覆盖掉原来的内容
5. fs.readFile 读取文件
// 读取文件内容
fs.readFile('index.txt', 'utf-8', (err, data) => {
if (err) {
console.log(err);
return false;
} else {
console.log(data);
}
})
6. fs.readdir 读取目录
比如,我想读取这个目录下的文件及文件夹

// 读取目录
fs.readdir('html',(err,data)=>{
if(err){
console.log(err);
}else{
console.log(data);
}
})
结果如下:
[ 'css', 'index.html', 'js' ]
7.1 fs.rename 重命名
// 重命名
fs.rename('html/index.html','html/news.html',(err)=>{
if(err){
console.log(err);
return false;
}else{
console.log('修改名字成功');
}
})
结果如下:

7.2 fs.rename 重定向
在 html 目录下新建一个 index.css 文件,现在,想将这个文件放入到 css 文件夹下,代码如下:
fs.rename('html/index.css','html/css/index.css',(err)=>{
if(err){
console.log(err);
return false;
}else{
console.log('重定向成功');
}
})
结果如下:

当然,也可以将重命名及重定向同步进行,代码如下:
fs.rename('html/index.css','html/css/basic.css',(err)=>{
if(err){
console.log(err);
return false;
}else{
console.log('重定向及重命名成功');
}
})
结果如下:

8. fs.rmdir 删除目录
fs.rmdir('html/js',(err)=>{
if(err){
console.log(err);
return false;
}else{
console.log('删除js文件夹成功');
}
})
9. fs.unlink 删除文件
// 删除文件
fs.unlink('1.txt',(err)=>{
if(err){
console.log(err);
return false;
}else{
console.log('删除文件成功');
}
})
node.js 中的 fs (文件)模块的更多相关文章
- node.js中的fs.rename()方法
node.js 中的fs.rename()模块 var fs=require('fs');//node.js的核心模块 原生模块.修改文件名称,可更改文件的存放路径 方法说明 : 修改文件名称,可更改 ...
- node.js中通过dgram数据报模块创建UDP服务器和客户端
node.js中 dgram 模块提供了udp数据包的socket实现,可以方便的创建udp服务器和客户端. 一.创建UDP服务器和客户端 服务端: const dgram = require('dg ...
- 项目日志的管理和应用 log4js-Node.js中的日志管理模块使用与封装
开发过程中,日志记录是必不可少的事情,尤其是生产系统中经常无法调试,因此日志就成了重要的调试信息来源. Node.js,已经有现成的开源日志模块,就是log4js,源码地址:点击打开链接 项目引用方法 ...
- log4js-Node.js中的日志管理模块使用与封装
开发过程中,日志记录是不可缺少的事情.尤其是生产系统中常常无法调试,因此日志就成了重要的调试信息来源. Node.js,已经有现成的开源日志模块,就是log4js,源代码地址:点击打开链接 项目引用方 ...
- node.js中的fs.appendFile方法使用说明
方法说明: 该方法以异步的方式将 data 插入到文件里,如果文件不存在会自动创建.data可以是任意字符串或者缓存. 语法: 代码如下: fs.appendFile(filename, data, ...
- Node.js中的fs文件系统
fs.stat 检测是文件还是目录 fs.mkdir 创建目录 fs.writeFile 创建写入文件 fs.appendFile 追加文件 fs.readFile 读取文件 fs.readdir 读 ...
- node.js中模块和包
node.js中模块和包 什么是模块 如何创建并加载模块 1. 创建模块 2. 单次加载 3. 覆盖 exports 如何创建一个包 1. 作为文件夹的模块 2. package.json 如何使用包 ...
- Node.js中module文件定义的top-level变量为何是私有的
在Node.js中,module文件里面使用var,const或者let定义的top-level变量为何是私有的,只能在这个模块文件中使用呢? 原因就是,在模块文件中的内容执行之前,node.js会降 ...
- 极简 Node.js 入门 - 3.2 文件读取
极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...
随机推荐
- vue开发请求本地模拟数据的配置方法(转)
VUE开发请求本地数据的配置,早期的vue-lic下面有dev-server.js和dev-client.js两文件,请求本地数据在dev-server.js里配置,最新的vue-webpack-te ...
- Linux(二)—— Linux配置及指令
目录 Linux配置及指令 一.linux中常用软件的安装 二.主机名和网络 1.修改主机名 2.设置网络 三.关闭防火墙 1.检查防火墙是否开启 2.清除策略 3.永久关闭第一个防火墙 4.关闭第二 ...
- Django框架(二十九)—— 跨域问题
目录 跨域问题 一.同源策略 二.CORS(跨域资源共享) 三.CORS两种请求(简单请求与非简单请求) 1.简单请求(一次请求) 2.非简单请求(两次请求) 四.CORS在Django中的应用 1. ...
- log4j日志记录到数据库
log4j API提供 org.apache.log4j.jdbc.JDBCAppender 对象,它能够将日志信息在指定的数据库. JDBCAppender 配置: Property 描述 buff ...
- 【题解】sweet
题目描述 为了防止糖果被小猫偷吃,John把他的糖果放在了很多的高台上,一个高台可以认为是一段平行于X轴的线段,并且高台的y坐标都是大于0的,每个高台都有左端点和高台的长度,每个高台都有糖果.所有的高 ...
- [轉]C/C++中的volatile使用時機?
不知各位對volatile(揮發性的)這個字陌不陌生? 我相信大家在一些程式或多或少都看 過這個字眼, 但是究竟要在何種場合用它呢?.當然一定是有需要, C/C++才會有這個保留字, 否則只是增加pr ...
- Arcpy 将要素类添加到当前工作窗口(内容列表)
test1layer=arcpy.mapping.Layer( folder+"\\"+"result.shp") mxd = arcpy.mapping.Ma ...
- 粗糙的区别prepareStatement:(为Statement的子类)与Statement
区别: prepareStatement:(为Statement的子类) conn = DBFactory.getInstance().getImpl().getConnection(); //方式一 ...
- phpstorm提示phalcon语法
先安装phalcon,将phalcon的扩展php_phalcon.dll添加到PHP的ext目录下,这个不做赘述,网上教程很多 下面直接安装phalcon-devtools, 1,分别下载phalc ...
- CSS新特性(3D转换,perspective(透视),transfrom-style(子元素是否开启三维环境))
1. 三维坐标系(里面的值不能省略,没有就写 0 ) x 轴:水平向右 注意:x 右边是正值,左边是负值 y轴: 垂直向下 注意:y 下面是正值,上面是负值 z轴:垂直屏幕 注意: ...