在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. 本文 ...
随机推荐
- Safe Or Unsafe(hdu2527)哈弗曼VS优先队列
Safe Or Unsafe Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...
- RxJava1升级到RxJava2的注意事项
1.package更改 rx1包名由原来的rx.xxx更改为io.reactivex.xxx,并且在同一个module之下,rx1和rx2是不兼容的. 2.背压支持 RxJava在1.0只有一个个观察 ...
- ScheduledExecutorService的两种方法
开发中,往往遇到另起线程执行其他代码的情况,用java定时任务接口ScheduledExecutorService来实现. ScheduledExecutorService是基于线程池设计的定时任务类 ...
- jsp登录显示
1.登录成功设置session request.getSession().setAttribute("user", user); 2.前台test <div class=&q ...
- zigzag方式编码
按以下公式转换: ParameterInteger = (value << 1) ^ (value >> 31) 参数值不支持大于pow(2,31) - 1或-1 * (pow ...
- sql语句查找某一列的值得最大值。
记录一下:sql语句查找某一列的值得最大值. 1.例如我要查找 表A中a列的最大值: 查找语句可以这么写: "select Max(a) a from A" 2.查找表A中a列中包 ...
- .NET 获取类内成员的名称,以字符串形式显示
需要做一个功能,显示类内的属性名和对应的值.比如有类 Public Class SupervisedParams Public TestMode As string Public Ti ...
- 安装google,多试试
对于谷歌Chrome32位版本,使用如下链接: wget https://dl.google.com/linux/direct/google-chrome-stable_current_i386.de ...
- ORACLE-SQL微妙之处
本文总结一下平时经常使用的SQL语句以及一些ORACLE函数的微妙之处.欢迎大家多多补充平时最常用的SQL语句,供大家学习参考. SQL> select * from temp2; NAME S ...
- C#多线程的用法10-线程池
TheadPool:在进行多线程编程时,如果不想频繁的创建线程,那可以考虑使用使用线程池来完成多线程编程的工作.你只需将要处理的任务交付给ThreadPool,如果ThreadPool中有空闲的线程, ...