1. fs.stat detection is a file or directory
fs.stat('html',function(err,stats){
if(err){
console.log(err);
return false;
}
the console.log ( 'file:' + stats.isFile ());
the console.log ( 'directory:' + stats.isDirectory ());
})
2. fs.mkdir create directory
// receive parameters:
// directory path path will be created
// the MODE directory permissions (read and write access), default 0777
// callback callback, passing the abnormal parameter err
fs.mkdir('css',function(err){
if(err){
console.log(err);
return false;
}
console.log ( 'Creating a successful directory' );
})
3. fs.writeFile create a written document
// filename (String) file name
// the Data (String | Buffer) content to be written, you can make a string or buffer data.
// Options (Object) array of the Option object that contains:
// · encoding (String) optional and defaults 'utf8', when the data buffer, the value should be ignored.
// · MODE (Number The) file read and write access, the default value of 438
// · In Flag (String) Default value 'W'
// the callback {Function} callback, a transmission abnormal parameter err.
fs.writeFile ( 't.txt', 'Hello nodejs coverage', 'UTF8', function (ERR) {
if(err){
console.log(err);
return false;
}
the console.log ( 'write success' );
})
4. fs.appendFile additional documents
fs.appendFile('t1.txt','这是写入的内容',function(err){
if(err){
console.log(err);
return false;
}
console.log('写入成功');
})
5.fs.readFile 读取文件
fs.readFile('t1.txt',function(err,data){
if(err){
console.log(err);
return false;
}
//console.log(data);
console.log(data.toString());
})
6.fs.readdir 读取目录
fs.readdir('html',function(err,data){
if(err){
console.log(err);
return false;
}
console.log(data);
})
7.fs.rename 重命名
fs.rename('html/index.html','html/news.html',function(err){
if(err){
console.log(err);
return false;
}
console.log('修改名字成功');
})
fs.rename('html/css/basic.css','html/style.css',function(err){
if(err){
console.log(err);
return false;
}
console.log('剪切成功');
})
8. fs.rmdir 删除目录
fs.rmdir('t',function(err){
if(err){
console.log(err);
return false;
}
console.log('删除目录成功');
})
// ENOENT: no such file or directory, rmdir rmdir 这个方法只能删除目录
fs.rmdir('index.txt',function(err){
if(err){
console.log(err);
return false;
}
console.log('删除目录成功');
})
9. fs.unlink 删除文件
fs.unlink('index.txt',function(err){
if(err){
console.log(err);
return false;
}
console.log('删除文件成功');
})
10. fs.createReadStream 从文件流中读取数据
const fs = require('fs')
//流的方式读取文件
var readStream=fs.createReadStream('input.txt');
var str='';/*保存数据*/
var count=0; /*次数*/
readStream.on('data',function(chunk){
str+=chunk;
count++;
})
//读取完成
readStream.on('end',function(chunk){
console.log(count);
console.log(str);
})
//读取失败
readStream.on('error',function(err){
console.log(err);
})
11. fs.createWriteStream 写入文件
var fs = require("fs");
var data = '我是从数据库获取的数据,我要保存起来11\n';
// 创建一个可以写入的流,写入到文件 output.txt 中
var writerStream = fs.createWriteStream('output.txt');
for(var i=0;i<100;i++){
writerStream.write(data,'utf8');
}
//标记写入完成
writerStream.end();
writerStream.on('finish',function(){
console.log('写入完成');
})
//失败
writerStream.on('error',function(){
console.log('写入失败');
})
12. 管道流
var fs = require("fs");
// 创建一个可读流
var readerStream = fs.createReadStream('input.txt');
// 创建一个可写流
var writerStream = fs.createWriteStream('output.txt');
// 管道读写操作
// 读取 input.txt 文件内容,并将内容写入到 output.txt 文件中
readerStream.pipe(writerStream);
console.log("程序执行完毕");
demo:
//1.判断服务器上面有没有upload目录。没有创建这个目录。 (图片上传)
//要用fs目录必须得引入fs
var fs=require('fs');
//
//fs.stat('upload',function(err,stats){
//
// if(err){ /*没有这个目录*/
// fs.mkdir('upload',function(error){
// if(error){
//
// console.log(error);
// return false;
// }
// console.log('创建成功');
// })
// }else{
// console.log('目录已经存在');
// console.log(stats.isDirectory());
// }
//
//})
//2. 找出html目录下面的所有的目录,然后打印出来
//错误写法
//fs.readdir('html',function(err,files){
// if(err){
// console.log(error);
//
// }else{ /*判断是目录还是文件夹*/
// console.log(files); /*数组*/
//
// for(var i=0;i<files.length;i++){
//
// console.log(files[i]);
// fs.stat(files[i],function(error,stats){ /*循环判断是目录还是文件 ---异步 */
//
// console.log(files[i]);
// })
// }
//
// }
//
//
//})
//
//打印出什么 3 3 3
//for(var i=0;i<3;i++){
//
// setTimeout(function(){
// console.log(i);
// },100)
//}
//正确的写法
var filesArr=[];
fs.readdir('html',function(err,files){
if(err){
console.log(error);
}else{ /*判断是目录还是文件夹*/
//console.log(files); /*数组*/
(function getFile(i){
if(i==files.length){ /*循环结束*/
console.log('目录:');
console.log(filesArr); /*打印出所有的目录*/
return false;
}
//files[i] = css js news.html
//注意:目录
fs.stat('html/'+files[i],function(error,stats){ /*循环判断是目录还是文件 */
if(stats.isDirectory()){ /*目录*/
filesArr.push (files[i]); /*保存数据*/
}
// recursive off with
the getFile (I +. 1 );
})
})(0)
}
})