在nodeJS中操作文件系统(二)
在nodeJS中操作文件系统(二)
1. 移动文件或目录
在fs模块中,可以使用rename方法移动文件或目录,使用方法如下:
fs.rename(oldPath,newPath,callback);
在rename方法中,有三个参数,oldPath参数用于指定被移动文件或目录的完整路径,newPath参数用于指定移动后该文件或目录的完整路径,callback参数用于指定移动执行完毕时调用的回调函数,在该回调函数使用一个参数,参数值为移动后操作失败时触发的错误对象。
比如如下代码:
var fs = require('fs');
var files = fs.rename('./message.txt','./test/test.txt',function(err){
if(err) {
console.log("移动文件操作失败");
}else {
console.log("移动文件操作成功");
}
});
意思是将根目录的message.txt文件移动到根目录下test文件中并将文件名或者目录名改为test.txt。但是test文件夹一定是存在的 否则会报错的。
我们也可以使用同步方式移动文件或目录,可以使用renameSync方法,该方法使用如下:
fs.renameSync(oldPath,newPath);
参数的含义和上面的rename方法中的参数含义一样。
2. 截断文件
在fs模块中,可以使用truncate方法对文件进行截断操作,该方法使用如下:
fs.truncate(filename,len,callback);
filename:用于指定需要被截断文件的完整路径,len参数值为指定截断后的文件尺寸(以字节为单位),callback参数用于指定截断文件操作完毕时执行的回调函数,该回调函数中使用一个参数,参数值为截断文件操作失败时触发的错误对象。
如下代码是对message.txt文件进行截断操作,使文件尺寸变为10字节,如下代码:
var fs = require('fs');
fs.truncate('./message.txt',10,function(err) {
if(err) {
console.log("对文件进行截断操作失败");
}else {
fs.stat('./message.txt',function(err,stats){
console.log("文件尺寸为:"+stats.size+" 字节");
});
}
});
截图如下:

在使用同步方式截断文件时,可以使用truncateSync方法,该方法使用如下所示:
fs.truncateSync(filename,len);
参数的含义和如上的一样。
在使用open或openSync方法打开文件并返回文件描述符后,可以使用fs模块中的ftruncate方法截断文件,该方法使用如下所示:
fs.ftruncate(fd,len,callback);
在ftruncate中使用三个参数,其中fd参数值为打开文件时返回的文件描述符,Len参数与callback参数的作用与truncate方法的参数相同。
如下代码:
var fs = require('fs');
fs.open('./message.txt','r',function(err,fd){
fs.ftruncate(fd,10,function(){
if(err) {
console.log("对文件进行截断操作失败");
}else {
fs.stat('./message.txt',function(err,stats){
console.log("文件尺寸为:"+stats.size+" 字节");
});
}
});
});
运行效果如上一样;
在使用同步方式截断文件时,可以使用ftruncateSync方法,该方法使用如下所示:
fs.ftruncateSync(fd,len);
3. 删除空目录
在fs模块中,可以使用rmdir方法删除空目录,该方法使用如下:
fs.rmdir(path,callback);
path参数用于指定需要被删除目录的完整路径,callback参数用于指定删除空目录操作执行完毕时调用的回调函数,该回调函数使用一个参数,参数值为删除目录操作失败时触发的错误对象。
如下代码:
var fs = require('fs');
fs.rmdir('./test',function(err){
if(err) {
console.log("删除空目录操作失败");
}else {
console.log("删除空目录操作成功");
}
});
如上代码是删除根目录下test空文件夹,记住是空文件夹,如果有子文件的话,删除会失败,否则的话删除成功。
在使用同步方法删除空目录时,可以使用fs模块中的rmdirSync方法,该方法使用如下:
fs.rmdirSync(path);
在nodeJS中操作文件系统(二)的更多相关文章
- 在Node.js中操作文件系统(一)
在Node.js中操作文件系统 在Node.js中,使用fs模块来实现所有有关文件及目录的创建,写入及删除操作.在fs模块中,所有对文件及目录的操作都可以使用同步与异步这两种方法.比如在执行读文件操作 ...
- nodejs中的文件系统
. 目录 简介 nodejs中的文件系统模块 Promise版本的fs 文件描述符 fs.stat文件状态信息 fs的文件读写 fs的文件夹操作 path操作 简介 nodejs使用了异步IO来提升服 ...
- 在NodeJS中操作文件常见的API
阅读目录 一:如何读整个文件内容? 二:如何写入整个文件内容? 三:如何在文件中的指定位置处读入内容? 四:如何在文件中的指定位置处写入内容? 五:如何创建与读取目录? 六:如何查看与修改文件或目录的 ...
- 在nodejs中操作数据库(MongoDB和MySQL为例)
一.使用nodejs操作MongoDB数据库 ①使用官方的mongodb包来操作 ②使用第三方的mongoose包来操作(比较常用) // 首先必须使MongoDB数据库保持开启状态 // npm下载 ...
- Node.js权威指南 (6) - 在Node.js中操作文件系统
6.1 同步方法与异步方法 / 856.2 对文件执行读写操作 / 86 6.2.1 文件的完整读写 / 86 6.2.2 从指定位置处开始读写文件 / 916.3 创建与读取目录 / 97 6.3. ...
- nodeJS之fs文件系统
前面的话 fs文件系统用于对系统文件及目录进行读写操作,本文将详细介绍js文件系统 概述 文件 I/O 是由简单封装的标准 POSIX 函数提供的. 通过 require('fs') 使用该模块. 所 ...
- Node.js之操作文件系统(二)
Node.js之操作文件系统(二) 1.创建与读取目录 1.1 创建目录 在fs模块中,可以使用mkdir方法创建目录,该方法的使用方法如下: fs.mkdir(path,[mode],callbca ...
- Nodejs学习笔记(二)--- 操作MongoDB数据库
最近看了一些关于mongodb的文章,然后就想知道nodeJS是怎么连接的所以我就尝试去了解了一波(这个菜鸟驿站这个网站还不错,虽然知识文档不是最新的,但是还是蛮好的: 顺便官网地址是这个哦:http ...
- 深入Nodejs模块fs - 文件系统操作
node 的fs文档密密麻麻的 api 非常多,毕竟全面支持对文件系统的操作.文档组织的很好,操作基本分为文件操作.目录操作.文件信息.流这个大方面,编程方式也支持同步.异步和 Promise. 本文 ...
随机推荐
- 【读书笔记】iOS-网络-错误处理的经验法则
一,在接口契约中处理错误. 二,错误状态可能不正确. 设备模糊地确认操作是崇拜失败的.比如,移动应用发出HTTP请求以在两个账户间转账.请求被银行系统接收并正确地处理:然而,由于网络失败应答却丢失了, ...
- SD从零开始51-54 信用控制范围, 信用范围数据维护, 自动信用控制, 信用控制-阻止后续功能
[原创] SD从零开始51 信用控制范围 分散的组织结构Decentralized Organization 信用控制范围是一个为客户指定和控制信用限额的组织单元: 依赖于你公司的需求,应收款可以使用 ...
- Oracle中Database Link的创建和Synonyms
在工作中我遇到过这样的一个问题,就是当我需要将远程主机上Oracle数据中某个表的数据copy到本地Oracle时,有多种方法可以实现.1.将所需要的数据导出到csv或其他格式的文档,复制到本地进行直 ...
- FileWriter写数据路径问题及关闭和刷新方法的区别
package com.itheima_01; import java.io.FileWriter; import java.io.IOException; /* * 输出流写数据的步骤: * A:创 ...
- Http 缓存机制
HTTP 缓存体系 首先我将 Http 缓存体系分为以下三个部分: HTTP/ OK Cache-Control: no-cache Content-Type: image/png Last-Modi ...
- show命令
数据库 show databases; 表 show tables; show tables in xxdb; show tables 'a*'; tblproperties show tblprop ...
- Expo大作战(二十七)--expo sdk api之Util(expo自带工具类),tackSnapshotAsync,Svg,SQLite
简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...
- springboot 学习之路 17(webflux 入门 (1))
Webflux: webflux是在springboot2系列引入的技术:补充一些概念: 1> Reactive Streams 是 JVM 中面向流的库标准和规范: 处理可能无限数量的元素 按 ...
- CSS 小结笔记之伸缩布局 (flex)
CSS flex 是一种伸缩布局,之前块级元素布局在同一行,可以通过display或position或float来实现,而本篇介绍一个新的方法——flex(弹性布局). flex 为和模型布局提供了极 ...
- LeetCode题解之 Increasing Order Search Tree
1.题目描述 2/问题分析 利用中序遍历,然后重新构造树. 3.代码 TreeNode* increasingBST(TreeNode* root) { if (root == NULL) retur ...