nodejs学习日记fs模块--文件拷贝和目录拷贝

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

版权声明:本文为weixin_44729896原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。