代码改变世界

在nodeJS中操作文件系统(二)

2015-05-03 22:45  龙恩0707  阅读(939)  评论(0编辑  收藏  举报

在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);