fs模块补充
fs.open()–>异步打开文件
fs.open(path,flags,mode,callback)
path <string> | <Buffer> | <URL>
flags <string> | <number> 参阅支持的文件系统标志。默认值: 'r'。
mode <integer> 默认值: 0o666(可读写)。
callback <Function>
err <Error>
fd <integer>//打开的文件本身
fs.wirteFile()–>异步写入文件
fs.writeFile(fd, data, callback)
file <string> | <Buffer> | <URL> | <integer> 文件名或文件描述符。
data <string> | <Buffer> | <TypedArray> | <DataView>
options <Object> | <string>
encoding <string> | <null> 默认值: 'utf8'。
mode <integer> 默认值: 0o666。
flag <string> 参阅支持的文件系统标志。默认值: 'w'。
callback <Function>
err <Error>
文件系统标志
'a' - 打开文件用于追加。如果文件不存在,则创建该文件。
'r' - 打开文件用于读取。如果文件不存在,则出现异常。
'w' - 打开文件用于写入。如果文件不存在则创建文件,如果文件已存在则截断文件。
eg:
//异步读取写入
let fs = require('fs');
fs.open("./../source/c.txt","a",(err,fd)=>{//fd-->打开的文件
if(!err){
console.log("打开文件")
fs.writeFile(fd,"明天过后"+Date.now() + "\n",(err)=>{
if(!err){
console.log("写入成功");
}else{
throw err;
}
});
//关闭文件
fs.close(fd,(err)=>{
if(!err){
console.log("文件保存并关闭成功");
}else{
throw err;
}
})
}
});
fs.readFile()–>读取文件
**
fs.readFile(path[, options], callback)
path <string> | <Buffer> | <URL> | <integer> 文件名或文件描述符。
options <Object> | <string>
encoding <string> | <null> 默认值: null。
flag <string> 参阅支持的文件系统标志。默认值: 'r'。
callback <Function>
err <Error>
data <string> | <Buffer>
**
fs.copyFile()–>拷贝文件
src <string> | <Buffer> | <URL> 要拷贝的源文件名。
dest <string> | <Buffer> | <URL> 拷贝操作的目标文件名。
flags <number> 用于拷贝操作的修饰符。默认值: 0。
callback <Function>
eg:
fs.copyFile('源文件.txt', '目标文件.txt', (err) => {
if (err) throw err;
console.log('源文件已拷贝到目标文件');
});
拷贝文件:
let fs = require('fs');
fs.readFile("./../source/b.txt",(err,data)=>{
if(!err){//读取成功
console.log(data.toString());
fs.writeFile("./../source/f.txt",data,(err)=>{
if(!err){
console.log("拷贝成功");
}else{
throw err;
}
})
}
})
拷贝目录:
let fs = require("fs");
let path = require("path");
fs.readdir(__dirname,(err,files)=>{//生成由文件名组成的一个数组
if(!err){
if(!fs.existsSync("./../one")){//没有该文件夹
console.log("没有该文件夹");
fs.mkdirSync("./../one");//创建one目录
}else{//拷贝目录
files.forEach((item,index)=>{//遍历原目录下的文件名
var item_path = path.join(__dirname,item);//获取原文件路径
var temp = fs.statSync(item_path);//获取原目录下所有文件的文件信息
if (temp.isFile()) { // 是文件
fs.copyFileSync(item_path, path.join("./../one", item));
} else if (temp.isDirectory()){ // 是目录
CopyDirectory(item_path, path.join("./../one", item));
}
})
}
}
})