fs.stat('./server.js', function (err, stat) { if (stat && stat.isFile()) { console.log('文件存在'); } else { console.log('文件不存在或不是标准文件'); } console.log(stat) });
[x] 判断文件是否存在node
[x] 不能判断目录函数
[x] 查询文件信息测试
[x] 打印结果:ui
文件存在 Stats { dev: 2052, mode: 33279, nlink: 1, uid: 1000, gid: 1000, rdev: 0, blksize: 4096, ino: 515557, size: 10, blocks: 1, atimeMs: 1536141106630.312, mtimeMs: 1536141106580.8394, ctimeMs: 1536141106580.8394, birthtimeMs: 1536141106580.8394, atime: 2018-09-05T09:51:46.630Z, mtime: 2018-09-05T09:51:46.581Z, ctime: 2018-09-05T09:51:46.581Z, birthtime: 2018-09-05T09:51:46.581Z }
fs.access('/server.js', function(err) { console.log(err ? '文件存在' : '文件不存在'); });
判断文件是否存在spa
fs.access('./server.js', fs.R_OK | fs.W_OK, function(err) { console.log(err ? '不可操做!' : '能够读/写'); });
fs.access()用于检查到指定path路径的目录或文件的访问权限。其回调函数中有一个参数(err),若是检查失败则会出现错误参数的响应。mode是要检查的权限掩码,它能够是如下枚举值之一:
fs.open('./server.js','r',function(err,fd){ // 在这里经过文件描述fs对文件进行操做 })
fs.open()方法第一个参数是文件路径。每二个参数是标志位,标志位表示文件的打开模式。标志含义与UNIX中fopen的标识位相同:
fs.open('./server.js', 'a', function (err, fd) { //对文件一些操做 //操做完成后,关闭文件 fs.close(fd, function(err){ }) })
当咱们须要对目录进行操做时,能够用node的fs模块提供的目录操做相关方法:==mkidr==,==readdir==,==rmdir==code
fs.mkdir('./test/2',function(err){ if(err){ console.log(err) } })
目录里多了一个test文件夹 2. 使用==fs.readdir==进行目录读取server
fs.readdir('./test',function(err,files){ if (err) { console.log(err) } console.log(files) })
test目录下有1和2两个文件夹控制台输出[ '1', '2' ] 3. 使用==fs.rmdir==进行目录删除对象
fs.rmdir('./test/2',function(err){ if(err){ console.log(err) } })
当目录非空、路径错误、非目录时异常会发生,此时文件夹被删除了进程
fs.rename('./test','./test1',function(err){ if(err) throw err; console.log('目录重命名完成') })
将test重命名为test1回调函数
fs.rename('./test/1/test.js','./test/1/test1.js',function(err){ if(err) throw err; console.log('文件重命名完成') })
fs.unlink('./test/1/test1.js', function(err) { if (err) throw err; console.log('文件删除成功'); });
删除了test1.js文件
node提供==read==,==write==,==readFile==,==createReadStream==, ==writeFile==, ==createWriteStream==来对文件进行读写
使用==fs.writeFile==()方法向./text.txt文件写入内容:
fs.writeFile('./test.txt', '测试', function(err){ if(err){ console.log(err); } })
使用==fs.readFile==()方法读./text.txt文件所有内容:
fs.readFile('./test.txt', function(err, data){ //文件内容 console.log(data.toString()); })
打印结果为'测试'
fs模块提供了建立文件可读流与建立文件可写读的方法:fs.createReadStream()和fs. createWriteStream(),这两个方法分别分返回一个Readable Stream对象和Writable Stream对象。经过这两个对象,咱们能够基于流的文件处理,在读写大文件及基于流的转接、暂停、读取等操做方面有很大的做用。
let readStream = fs.createReadStream('./test.txt') // 建立可读流 let writeStream = fs.createWriteStream('./server.js') // 建立可写流 readStream.on('data', function(data){ writeStream.write(data) })
读取text.txt的内容,将其写入到server.js中,会覆盖server.js原有内容