首页 > 代码库 > node.js文件系统

node.js文件系统

FS文件系统

      第一次用这个的时候非常爽,可以在代码层编写“增删改查”文件的功能。分解里面提供的方法,接下来我们从头创建开始,最后删除文件结束,一套流程接下fs文件系统的神奇。

        要使用fs文件系统就要引用,否则无法实现功能,代码如下

//引入文件系统var fs = require(‘fs‘);

       

新建目录:mkdir

   

//引入文件系统var fs = require(‘fs‘);//创建目录fs.mkdir(‘./html‘,function(err){    if(err){        console.log(err);    }else{        console.log(‘创建目录成功!‘);    }});

第一步完成了,在当前项目中已经存在一个叫html的文件夹,当我想拿mkdir去创建单独文件是无法实现的,起结果还是一个文件夹,怎么去创建单独的文件呢?

新建文件:writeFlie

//引入文件系统var fs = require(‘fs‘);//创建文件fs.writeFile(‘./html/html.txt‘,function(err){    if(err){        console.log(err);    }else{        console.log(‘创建文件成功!‘);    }});

执行之后,在html文件夹下又多了一个html.txt类型的文件,对于上段代码可重复操作,因为它既能写又能创建文件。

接下来又要考虑一个问题,既然有文件了,但是里面内容怎么去编写,还是同一个方法,就是多了一个参数变化,从下面代码中体现。

//引入文件系统var fs = require(‘fs‘);var _txt = ‘hello node.js‘;//创建文件fs.writeFile(‘./html/html.txt‘,_txt,function(err){    if(err){        console.log(err);    }else{        console.log(‘创建文件成功!‘);    }});

定义了一个_txt变量,放入到writeFile函数中去。这样它就可以在html.txt文件中写入新的内容了。同时这个函数也可以当做更新操作,把原文件内容重新定义。"增删改查",writeFile占据了3样功能,太喜欢这个方式了。

接下来不需这个文件的时候就需要删除操作,fs提供了一个方法

删除文件:unlink

//引入文件系统var fs = require(‘fs‘);//删除文件fs.unlink(‘./html/html.txt‘,function(err){    if(err){        console.log(err);    }else{        console.log(‘删除文件成功!‘);    }});

上面一套简单的流程走完,还有很多方法没有说,接下来一个个来:

能创建目录就能删除目录,

删除目录:rmdir (如果文件夹中存在单独文件,此操作会抛出异常)

   

//引入文件系统var fs = require(‘fs‘);//删除目录fs.rmdir(‘./html‘,function(err){    if(err){        console.log(err);    }else{        console.log(‘删除目录成功!‘)    }});

运行结果:

如果文件下还存在文件,抛异常,运行结果:

如果对文件不想任何有改动的操作,就只为读取,文件系统提供了readdir函数

读取目录或文件:readdir

//引入文件系统var fs = require(‘fs‘);//读取目录fs.readdir(‘./index‘,function(err,data){    if(err){        console.log(err);    }else{        console.log(‘读文件成功!‘+ data);    }});

只读到文件夹层级,就会把此文件夹下的文件读取出来

       

读取到单独文件的运行结果:

readdir返回结果是以数组形式呈现

 

查看路径是否存在:exists

  首先说明下我的工程目录,看截图

我要找一下当前目录是否存在的操作:

//引入文件系统var fs = require(‘fs‘);var _path = __dirname + "/klm";//判断fs.exists(_path,function(exist){
    if(exist){
        console.log(exist + "路径存在...");
    }else{
        console.log(‘目录路径不存在‘);
    }
});

如果存在结果是布尔值true

 

在fs文件系统也提供了同步操作:writeFileSync(同步写入),readFileSync(同步读取),mkdirSync(同步创建),这里区别就是异步I/O和同步I/O,node.js主要运用异步I/O去处理,提高响应性能,对于同步I/O看什么场景需求了。

 

node.js文件系统